我有下面的代码,我想知道是否有人知道处理这个问题的正确方法。
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
}
现在,假设存储过程什么都不返回,有没有一个方法可以处理这个问题?
通常,用//do标记的部分将包含
if (dr.Read())
{
// do stuff
}
或
while (dr.Read())
{
// do stuff
}
.Read()检查确保只有在返回数据时才执行操作。
while (dr.Read())
{
Console.WriteLine(String.Format("{0}", reader[0]));
}
你可以参考http://msdn.microsoft.com/en-us/library/y6wy5a0f.aspx