Ive đã sử dụng phương pháp này trước để trả về số lượng hàng đã thay đổi. Tôi là nó để chạy một phương thức chèn, chèn chạy tốt trong thủ tục được lưu trữ, nhưng giá trị trả về từ ExecuteNonQuery luôn trả về -1.C#: ExecuteNonQuery() trả về -1
Đây là mã của tôi 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;
Tại sao tôi nhận -1 thay vì con số thực tế của hàng thay đổi?
Vì vậy, các sửa đổi trong bảng thực sự diễn ra nhưng bạn đang nhận được -1? – Tudor
Nó có thể trả về bất kỳ giá trị trả về nào của bạn, có lẽ là -1 nếu không được chỉ định khác .. –
Bạn đã thực sự nắm bắt được cuộc gọi SQL bằng profiler và được thực hiện thủ công để xem số hàng thay đổi thực tế? –