У меня есть этот код, который отлично работает, но только проблема заключается в том, что при вводе имени пользователя или пароля, который не существует в базе данных, этот код по-прежнему отображает сообщение «пароль изменен успешно», без каких-либо изменение сообщения db или ошибки. Я хочу знать способ справиться с этим. Есть ли способ отобразить сообщение, когда WHERE
условие терпит неудачу?Заявление о текущем состоянии Условие Fail
Try
If txtBoxSettingNewPassword.Text = txtBoxSettingConfPassword.Text Then
con.Open()
cmd.Connection = con
cmd.CommandType = System.Data.CommandType.Text
cmd.CommandText = ("UPDATE [User] " & _
"SET password = '" & (txtBoxSettingNewPassword.Text) & "'" & _
"WHERE user_name ='" & (txtBoxSettingUserName.Text) & "'" & " and password = '" & (txtBoxSettingOldPassword.Text) & "';")
cmd.ExecuteNonQuery()
MessageBox.Show("password changed successfully")
Else
MessageBox.Show("Passwords do not match")
End If
Catch ex As Exception
MessageBox.Show("Something went wrong," & ex.Message)
Finally
con.Close()
End Try
Заранее спасибо
int rowsAffected = cmd.ExecuteNonQuery(); ----- затем проверьте значение rowsaffected –
Ваш код широко открыт для SQL Injection. Используйте хранимую процедуру как переход между ними. Затем ваша хранимая процедура может быть сделана для исключения исключения, когда что-то не так. –