У меня есть форма, которая имеет несколько полей. И эта форма может добавлять, редактировать, сохранять и обновлять записи. Но кнопка «Обновить» дает мне ошибку «Неустранимая ошибка во время выполнения команды», которая я не знаю, как найти ошибку в моих кодах. Вот мои коды.Неустранимая ошибка при выполнении команды (MySQL, VBNET)
Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
conn = New MySqlConnection
conn.ConnectionString = "server=localhost; userid=root; password=root; database=dbase"
Try
conn.Open()
Sql = "UPDATE dbase.tblfacultyinfo SET firstname = @firstname, " & _
"middlename = @middlename," & _
"lastname = @lastname," & _
"gender = @gender," & _
"birthdate = @birthdate," & _
"age = @age," & _
"emailAdd = @emailAdd," & _
"contact_mobileno = @contact_mobileno," & _
"contact_telno = @contact_telno," & _
"homeadd_houseno = @homeadd_houseno," & _
"homeadd_street = @homeadd_street," & _
"homeadd_brgy = @homeadd_brgy," & _
"homeadd_town = @homeadd_town," & _
"tersiary_schoolname = @tersiary_schoolname," & _
"tersiary_address = @tersiary_address," & _
"tersiary_degree = @tersiary_degree," & _
"tersiary_batch = @tersiary_batch," & _
"secondary_schoolname = @secondary_schoolname," & _
"secondary_address = @secondary_address," & _
"secondary_batch = @secondary_batch" & _
"WHERE facultyNo = @facultyNo"
With cmd
.Connection = conn
.CommandText = Sql
.CommandType = CommandType.Text
.Parameters.AddWithValue("@facultyNo", txtFacultyNo.Text)
.Parameters.AddWithValue("@firstname", txtFirstname.Text)
.Parameters.AddWithValue("@middlename", txtMiddlename.Text)
.Parameters.AddWithValue("@lastname", txtLastname.Text)
.Parameters.AddWithValue("@gender", cbGender.Text)
.Parameters.AddWithValue("@birthdate", dtpBirthdate.Value)
.Parameters.AddWithValue("@age", txtAge.Text)
.Parameters.AddWithValue("@emailAdd", txtEmailAdd.Text)
.Parameters.AddWithValue("@contact_mobileno", txtContact_Mobile.Text)
.Parameters.AddWithValue("@contact_telno", txtContact_Tel.Text)
.Parameters.AddWithValue("@homeadd_houseno", txtHomeAdd_HouseNo.Text)
.Parameters.AddWithValue("@homeadd_street", txtHomeAdd_Street.Text)
.Parameters.AddWithValue("@homeadd_brgy", txtHomeAdd_Brgy.Text)
.Parameters.AddWithValue("@homeadd_town", txtHomeAdd_Town.Text)
.Parameters.AddWithValue("@tersiary_schoolname", txtTersiary_Schoolname.Text)
.Parameters.AddWithValue("@tersiary_address", txtTersiary_Add.Text)
.Parameters.AddWithValue("@tersiary_degree", txtTersiary_Degree.Text)
.Parameters.AddWithValue("@tersiary_batch", cbBatchTer.Text)
.Parameters.AddWithValue("@secondary_schoolname", txtSecondary_Schoolname.Text)
.Parameters.AddWithValue("@secondary_address", txtSecondary_Add.Text)
.Parameters.AddWithValue("@secondary_batch", cbBatchSec.Text)
End With
dr = cmd.ExecuteReader
MsgBox("Data Updated", vbInformation, "Successfully Update Record")
conn.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
conn.Dispose()
buttons("ResetButtons")
DataGridView1.Enabled = True
End Try
End Sub
любая помощь приветствуется. Thx заранее.
сначала удалите все эти вары и обновите только одно имя. и посмотреть, работает ли он. – Banana
Вы используете AddWithValue. Это означает, что DataType переданного параметра решен, глядя на тип данных переданного значения. Все ваши параметры создаются с помощью Strings. Вы уверены, что все поля базы данных принимают строки? – Steve
также, пожалуйста, напишите объявление своей таблицы – Banana