mysql - 如何解决致命的 SQL 语句错误?

标签 mysql database vb.net syntax

我在使用 vb.net 应用程序更新 SQL 数据库中的信息时遇到问题,但最近 I found the solution .但是现在我遇到了另一个问题,如下面的代码所示:

 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

异常信息是:

Fatal error encountered during command execution.

我不知道这只是一个可以轻松修复的语法错误,还是与我的数据库配置有关。

最佳答案

如果我正确解读了你的屏幕截图,那么你的 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 = ....... "

关于mysql - 如何解决致命的 SQL 语句错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7229980/

相关文章:

PHP MySQL 获取列名同时遍历所有记录

php - 如何使用 PHP 和 SQL 在一个文本框中搜索特定项目?

php - 有没有办法使用 ODBC 让用户能够将 MySQL 作为格式化的 excel 文件下载?

sql - 如何在 SQL Server 2012 中生成特定查询

database - 查询连接如何在 MPP 数据库中工作?

mysql - 如何连接MySQL Workbench?

MySQL 意外结果 : "IN"-clause (number, 'string' ) 在 varchar 列上

vb.net - 跨线程操作无效

mysql - vb sql查询不同类型的字段

vb.net - 有没有办法比较 Date 对象而忽略时间?