【问题标题】:DataReader from objComm.ExecuteReader来自 objComm.ExecuteReader 的 DataReader
【发布时间】:2013-08-30 02:20:13
【问题描述】:

我有以下代码,我想知道是否有人知道处理此问题的正确方法。

SqlConnection objConn = new SqlConnection(ConfigurationManager.ConnectionStrings["someConnectionString"].ConnectionString);
SqlCommand objComm = new SqlCommand("usp_someStoredProcedure", objConn);
objComm.CommandType = CommandType.StoredProcedure;
objComm.Parameters.AddWithValue("@Variable1", VOne);
objComm.Parameters.AddWithValue("@Variable2", VTwo);

objConn.Open();
using (IDataReader dr = objComm.ExecuteReader(CommandBehavior.CloseConnection))
{
   //do stuff
}

现在,假设存储过程什么都不返回,有没有办法处理这个问题?

【问题讨论】:

  • 我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
  • 当 SP 没有返回数据时,您当前的代码可以正常工作。
  • “有没有办法处理这个”:这取决于,你希望应用程序如何处理它?

标签: c# datareader idatareader


【解决方案1】:

通常你用 //do stuff 标记的部分会包含一个

if (dr.Read())
{
  // do stuff
}

或者一个

while (dr.Read())
{
  // do stuff
}

.Read() 检查确保您仅在它返回数据时才采取行动。

【讨论】:

    【解决方案2】:
    while (dr.Read())
        {
            Console.WriteLine(String.Format("{0}", reader[0]));
        }
    

    您可以参考http://msdn.microsoft.com/en-us/library/y6wy5a0f.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多