-2

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

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
}

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

4

2 回答 2

1

通常,您用 //do stuff 标记的部分将包含一个

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

或一个

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

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

于 2013-08-30T04:28:38.910 回答
0
while (dr.Read())
    {
        Console.WriteLine(String.Format("{0}", reader[0]));
    }

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

于 2013-08-30T05:53:52.057 回答