Ive использовал этот метод раньше, чтобы вернуть количество строк. Я запускаю метод insert, вставка отлично работает в хранимой процедуре, но возвращаемое значение из ExecuteNonQuery всегда возвращает -1.C#: ExecuteNonQuery() возвращает -1
Вот мой C# код:
int ret = 0;
using (SqlConnection conn = new SqlConnection(this.ConnectionString))
{
using (SqlCommand cmd = new SqlCommand(QueryName, conn))
{
conn.Open();
if (Params != null)
cmd.Parameters.AddRange(Params);
cmd.CommandType = CommandType.StoredProcedure;
ret = cmd.ExecuteNonQuery();
conn.Close();
}
}
return ret;
Почему я получаю -1 вместо фактического числа строк изменилось?
Итак, изменения в таблице действительно имеют место, но вы получаете -1? – Tudor
Вероятно, он возвращает все ваши возвраты sproc, что, вероятно, равно -1, если не указано иное. –
Вы действительно захватили вызов SQL с использованием профилировщика и вручную выполнили, чтобы увидеть фактический номер измененной строки? –