Как я могу решить фатальную ошибку SQL-оператора? - PullRequest
2 голосов
/ 29 августа 2011

У меня были проблемы с обновлением информации в базе данных SQL с помощью приложения vb.net, но недавно Я нашел решение .Однако теперь я столкнулся с другой проблемой, которая показана в приведенном ниже коде:

 Private Sub cmdupdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdupdate.Click
   Dim conn As New MySqlConnection
    Dim myCommand As New MySqlCommand

    '#######
    conn.ConnectionString = "server=" & frmLogin.txtserver.Text & ";" _
& "user id=" & frmLogin.txtusername.Text & ";" _
& "password=" & frmLogin.txtpassword.Text & ";" _
& "database=in_out"
    '#######

    myCommand.Connection = conn
    myCommand.CommandText = "UPDATE event SET" _
        & "status = ?Status " _
        & "WHERE user_id = ?UserID AND message_id = ?MessageID AND creator = ?Creator"

    myCommand.Parameters.AddWithValue("?UserID", myUserID)
    myCommand.Parameters.AddWithValue("?MessageID", cbomessage.SelectedValue)
    myCommand.Parameters.AddWithValue("?Status", cbostatus.SelectedItem)
    myCommand.Parameters.AddWithValue("?Creator", myUserID)
    myCommand.Connection = conn
    Try
        myCommand.Connection.Open()
        myCommand.ExecuteNonQuery()
        myCommand.Connection.Close()
    Catch myerror As MySqlException
        MsgBox("There was an error updating the database: " & myerror.Message)
    End Try
End Sub

Сообщение об исключении:

Неустранимая ошибка при выполнении команды.

Я не знаю, является ли это просто синтаксической ошибкой, которую можно легко исправить, или что-то связанное с моей конфигурацией базы данных.

Ответы [ 2 ]

1 голос
/ 29 августа 2011

Если я правильно расшифрую ваш снимок экрана, то ваш оператор UPDATE будет составлен:

"UPDATE event SET" &
"status = ?Status" &
"WHERE user_id = ....... "

Это приведет к:

UPDATE event SETstatus = ?StatusWHERE user_id = .......

, так что вы действительно только пропускаете некоторые пробелы !

"UPDATE event SET " &    -- observe the SPACE after the SET !
"status = ?Status " &    -- observe the SPACE after the ?Status
"WHERE user_id = ....... "
0 голосов
/ 24 октября 2013

Добавить пробел раньше; ниже

conn.ConnectionString = "server =" & frmLogin.txtserver.Text & ";" _

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...