Hai lỗi.
Điều đầu tiên:Phần giữ chỗ tham số không được đặt trong dấu ngoặc kép. Nếu không, chúng trở thành chuỗi ký tự và không được nhận dạng nữa
Thứ hai:AddWithValue nhận hai tham số. Cái đầu tiên là tên của tham số, cái thứ hai là giá trị không phải là kiểu cơ sở dữ liệu.
MySqlCommand cmd = new MySqlCommand(@"Insert into personal(PAN,PName,Age)
values(@PAN,@PName,@Age)",con);
cmd.Parameters.AddWithValue("@PAN",panBox.Text);
cmd.Parameters.AddWithValue("@PName", nameBox.Text);
cmd.Parameters.AddWithValue("@Age",Convert.ToInt32(ageBox.Text));
cmd.ExecuteNonQuery();
Tất nhiên, điều này có nguy cơ ném ra một ngoại lệ nếu ageBox
trống rỗng. Tôi không biết yêu cầu của bạn nhưng nếu trường Tuổi bắt buộc phải là một số hợp lệ thì có thể thêm một chút kiểm tra lỗi để tránh những lỗi tầm thường.
int ageValue;
if(!Int32.TryParse(ageBox.Text, out ageValue))
{
MessageBox.Show("Please type a valid value for Age!");
return;
}
.... insert code follows...