Что я хочу сделать, сначала проверьте, существует ли идентификационный номер, а затем, если он существует, выполните процесс обновления, но проблема в том, что он не обновляется. В чем проблема ?Не удается обновить данные в базе данных mySQL
sqlconn = New MySqlConnection
sqlconn.ConnectionString = "server=localhost;userid=root;password='';database=innovative"
Try
sqlconn.Open()
query = "SELECT Full_Name FROM employee WHERE ID='" & txt_id_number.Text & "'"
cmd = New MySqlCommand(query, sqlconn)
reader = cmd.ExecuteReader
If reader.HasRows = False Then
MsgBox("Invalid ID number please secure that the ID number is already Exist" & vbNewLine & "TAKE NOTE:" & vbNewLine & "You cannot update or change the existing ID number for it is the primary Key for the Employee, If you want to Change it, its better to delete the Employee then add it again." & vbNewLine & "Other than that you can change the Full name, age, contact and etc.", vbCritical)
Else
reader.Close()
sqlconn.Open()
query1 = "UPDATE employee SET Full_Name ='" & txt_fullname.Text & "', Employee_Type='" & txt_employee_type.Text & "', Age='" & txt_age.Text & "',Sex='" & cb_sex.Text & "', Status='" & txt_status.Text & "', Contact ='" & txt_contact.Text & "',E_mail='" & txt_email.Text & "' WHERE ID = '" & txt_id_number.Text & "'"
cmd = New MySqlCommand(query1, sqlconn)
reader1 = cmd.ExecuteReader
MsgBox(txt_fullname.Text & " was successfully updated", vbInformation)
txt_age.Text = ""
txt_contact.Text = ""
txt_email.Text = ""
txt_employee_type.Text = ""
txt_fullname.Text = ""
txt_id_number.Text = ""
txt_status.Text = ""
cb_sex.Text = ""
add_employee()
End If
sqlconn.Close()
Catch ex As Exception
Finally
sqlconn.Dispose()
End Try
Объект считывателя используется для запроса базы данных для операторов Update, Insert & Delete, которые вы хотите выполнитьNonQuery. –
Вы также можете избавиться от запроса, ища действительный идентификатор и вернуть количество строк, обновленных при выполнении инструкции обновления. Если возвращается 0, то условие WHERE не обнаружило строк для обновления. Все, что больше 0, означает, что условие WHERE было выполнено. Кроме того, вы должны прекратить соединять значения в ваши инструкции и использовать параметры как для защиты ваших SQL-операторов, так и для облегчения вашей жизни, когда дело доходит до того, как можно обернуть поля на основе их типа. –
Этот код является безумным, уязвимым для SQL-инъекций. –