DataReader от objComm.ExecuteReader

У меня есть следующий код, и мне было интересно, если кто-нибудь знает правильный способ справиться с этим.

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 ответа

Решение

Обычно раздел, который вы пометили // делать вещи, будет содержать

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

Другие вопросы по тегам