来自objComm.ExecuteReader的DataReader

时间:2013-08-30 02:20:13

标签: c# datareader idatareader

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

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
}

现在,假设存储过程没有返回任何内容,是否有处理此问题的方法?

2 个答案:

答案 0 :(得分:1)

通常,使用// do stuff标记的部分将包含

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

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

.Read()检查确保您只在返回数据时才会执行。

答案 1 :(得分:0)

while (dr.Read())
    {
        Console.WriteLine(String.Format("{0}", reader[0]));
    }

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