【问题标题】:Getiing multiple resultset from a stored procedure从存储过程中获取多个结果集
【发布时间】: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();

通常存储过程只返回一个结果集是有道理的,但是我需要它来进行调试。有可能吗?

【问题讨论】:

  • 好的,这里建议的是评论而不是答案。使用 SqlDataReader.NextResult 方法:)
  • @ZedBee:您的回答非常完美。有些人只是不明白,您不能仅根据文本的长度将回复归类为答案或评论。有些答案不需要冗长的解释。
  • @Dan-o ..... 完成 :)

标签: c# sqldatareader


【解决方案1】:

使用 SqlDataReader NextResult

【讨论】:

  • 这更像是一条评论!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-13
  • 1970-01-01
  • 2014-03-08
  • 2023-03-23
  • 1970-01-01
  • 2020-02-18
  • 2023-03-28
相关资源
最近更新 更多