首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从DataReader中检索第二个结果集到数据表?

如何从DataReader中检索第二个结果集到数据表?
EN

Stack Overflow用户
提问于 2019-04-25 01:52:32
回答 1查看 87关注 0票数 0

我有一个sp,它返回两组结果。我需要将这两个数据都放在一个datatable中,并将它们转换为一个数据模型。

怎样才能得到第二组结果呢?

代码语言:javascript
复制
 SqlConnection connection = new SqlConnection(connectionstring);
                ce.Database.Initialize(force: false);    
                connection.Open();

                SqlCommand cmd = new SqlCommand("GetJournal", connection);
                cmd.CommandType = System.Data.CommandType.StoredProcedure;                  

                SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                var dataTable = new DataTable();
                dataTable.Load(reader);
                List<Header> headerList = dataTable.AsEnumerable().Select(values =>
                                                                   new Header
                                                                   {
                                                                       HeaderId = values.Field<Int32>("HeaderId").ToString()                                                                   
                                                                   }).ToList();

                myList1 = headerList;
                myList2 = detailList; <_---- I need to populate detail list

另外,显式命名所有字段是否是加载此列表的最有效方式?有没有我可以做的序列化呢?我最多可以有500列的表

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-25 03:46:00

在读取器未关闭之前,您可以加载更多的表。如果您有多个结果,我建议您填充一个DataSet,它可以包含多个DataTable实例:

代码语言:javascript
复制
public static DataSet ToDataSet(IDataReader reader)
{
    DataSet ds = new DataSet();
    while (!reader.IsClosed)
    {
        DataTable dt = new DataTable();
        dt.Load(reader);
        ds.Tables.Add(dt);
    }

    return ds;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55835891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档