我有一个sp,它返回两组结果。我需要将这两个数据都放在一个datatable中,并将它们转换为一个数据模型。
怎样才能得到第二组结果呢?
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列的表
发布于 2019-04-25 03:46:00
在读取器未关闭之前,您可以加载更多的表。如果您有多个结果,我建议您填充一个DataSet
,它可以包含多个DataTable
实例:
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;
}
https://stackoverflow.com/questions/55835891
复制相似问题