【发布时间】:2019-06-20 17:53:54
【问题描述】:
目前我有一个基于 2 个表返回 XML 的存储过程。然后我将 XML 导入到 DataSet:
var xml = conn.QueryFirst<string>("myproc", new { id }, commandType: CommandType.StoredProcedure);
using (var sr = new StringReader(xml))
{
var ds = new DataSet();
ds.ReadXml(sr);
return ds;
}
这种方法的问题是我需要将列转换为正确的数据类型,而这没有按预期工作。
是否可以直接将存储过程的结果返回到DataSet,而不是这个额外的步骤?显然,存储过程将相应地更改,以便返回结果集而不是 XML。
编辑
Dapper 有 QueryMultiple 但我怎样才能将每个结果返回到表中。我是否需要额外的步骤才能将结果设为dynamic,然后为每个结果创建一个DataTable?
【问题讨论】:
-
您是否考虑过将 xml 反序列化为您定义的类型?您可以返回多个结果集,但很可能
XmlSerializer需要的更改最少。 -
你为什么还要使用数据集?你不能用真正的具体类型来代替吗?
-
这个问题已经回答了请参考这个帖子stackoverflow.com/questions/40013747/…
标签: c# sql-server stored-procedures dataset sql-server-2016