【发布时间】:2013-12-30 12:40:38
【问题描述】:
我有一个包含多个选择的存储过程,有点像这样:
select 'Connected'
exec DoWork
@var1 = 23,
@var2 = 400
select 'Done'
select 'Bye'
当我从我的 C# 代码调用存储过程时,我的 SqlDataReader 中只有一个结果,它是“已连接”选择。
我这样称呼它
SqlCommand command = connection.CreateCommand();
command.CommandType = System.Data.CommandType.StoredProcedure;
command.CommandText = "SP_MyProc";
command.Parameters.Add("@val", "TEST");
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
string temp = "";
for (int i = 0; i < reader.FieldCount; i++)
{
temp += reader.GetString(i) + " ";
}
worker.ReportProgress(0, temp);
}
connection.Close();
通常存储过程只返回一个结果集是有道理的,但是我需要它来进行调试。有可能吗?
【问题讨论】:
-
看看这个......stackoverflow.com/questions/12969318/…
-
好的,这里建议的是评论而不是答案。使用 SqlDataReader.NextResult 方法:)
-
@ZedBee:您的回答非常完美。有些人只是不明白,您不能仅根据文本的长度将回复归类为答案或评论。有些答案不需要冗长的解释。
-
@Dan-o ..... 完成 :)
标签: c# sqldatareader