Đề xuất thực hiện việc này trong đoạn mã phía sau của bạn trước khi gửi xuống SQL Server.
int userVal = int.Parse(txtboxname.Text);
Có lẽ hãy thử phân tích cú pháp và tùy ý cho người dùng biết.
int? userVal;
if (int.TryParse(txtboxname.Text, out userVal)
{
DoSomething(userVal.Value);
}
else
{ MessageBox.Show("Hey, we need an int over here."); }
Ngoại lệ bạn lưu ý có nghĩa là bạn không bao gồm giá trị trong lệnh gọi đến proc được lưu trữ. Hãy thử đặt một điểm ngắt của trình gỡ lỗi trong mã của bạn tại thời điểm bạn gọi xuống mã tạo lệnh gọi đến SQL Server.
Đảm bảo rằng bạn đang thực sự đính kèm tham số vào SqlCommand.
using (SqlConnection conn = new SqlConnection(connString))
{
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@ParamName", SqlDbType.Int);
cmd.Parameters["@ParamName"].Value = newName;
conn.Open();
string someReturn = (string)cmd.ExecuteScalar();
}
Có thể kích hoạt SQL Profiler trên cơ sở dữ liệu của bạn để kiểm tra câu lệnh SQL được gửi / thực thi.