在vb上获取错误:在sql语句结束时缺少分号(;)

时间:2017-08-15 22:29:21

标签: sql vb.net

我有一段代码与Try&捉:

Try
    comando = New OleDbCommand("INSERT INTO login VALUES (Usuario, Password, Cuenta)" & Chr(13) &
        "VALUES(UsuarioText, PasswordText, TipoText)", conexion)
    comando.Parameters.AddWithValue("@Usuario", UsuarioText.Text)
    comando.Parameters.AddWithValue("@Password", PasswordText.Text)
    comando.Parameters.AddWithValue("@Cuenta", TipoText.Text)

    comando.ExecuteNonQuery()
    MsgBox("El registro ha sido guardado exitosamente", MsgBoxStyle.Information, "Informacion")


Catch ex As Exception
    MsgBox("El registro no se pudo guardar", MsgBoxStyle.Critical, "Informacion")
    MsgBox(ex.Message)
End Try

我正在尝试通过在语句末尾添加一些;来修复错误,但仍无效。

它可能是什么?

3 个答案:

答案 0 :(得分:0)

尝试此方法

' SQL COMMAND FOR INSERTING VALUES 
Dim objCommand As OleDbCommand = New OleDbCommand()
objCommand.Connection = conexion

objCommand.CommandText = "INSERT INTO login VALUES ([Usuario], [Password], [Cuenta])" & _
    "VALUES(@Usuario, @Password, @cuenta)"

' CONTROLS BINDING
objCommand.Parameters.AddWithValue("@Usuario", UsuarioText.Text)
objCommand.Parameters.AddWithValue("@Password", PasswordText.Text)
objCommand.Parameters.AddWithValue("@Cuenta", TipoText.Text)

'OPEN CONNECTION
conexion.Open()
'EXECUTE CONNECTION
objCommand.ExecuteNonQuery()
MsgBox("El registro ha sido guardado exitosamente", MsgBoxStyle.Information, "Informacion")

'CLOSE CONNECTION 
conexion.Close()

我评论了代码的每个部分

希望有所帮助

这是我用于项目的简单方法

这是不正确的VALUES(UsuarioText, PasswordText, TipoText) 更正一个VALUES(@Usuario, @Password, @cuenta),因为我使用parameters.addWithValue绑定控件

objCommand.Parameters.AddWithValue("@Usuario", UsuarioText.Text)
objCommand.Parameters.AddWithValue("@Password", PasswordText.Text)
objCommand.Parameters.AddWithValue("@Cuenta", TipoText.Text)

答案 1 :(得分:0)

嘿@NietzscheProgrammer

尝试调整INSERT语句,因此它只有一行。删除CHAR(13)并添加" @"变量中的符号。不要忘记将SEMICOLON放在声明的末尾。

Try
    comando = New OleDbCommand("INSERT INTO login VALUES (Usuario, Password, Cuenta) VALUES(@UsuarioText, @PasswordText, @TipoText);", conexion)
    comando.Parameters.AddWithValue("@Usuario", UsuarioText.Text)
    comando.Parameters.AddWithValue("@Password", PasswordText.Text)
    comando.Parameters.AddWithValue("@Cuenta", TipoText.Text)

    comando.ExecuteNonQuery()
    MsgBox("El registro ha sido guardado exitosamente", MsgBoxStyle.Information, "Informacion")

Catch ex As Exception
    MsgBox("El registro no se pudo guardar", MsgBoxStyle.Critical, "Informacion")
    MsgBox(ex.Message)
End Try

答案 2 :(得分:0)

在表VALUES之后忽略Login 它应该是:

 comando = New OleDbCommand("INSERT INTO login (Usuario, Password, Cuenta) VALUES (UsuarioText, PasswordText, TipoText)", conexion)

修改

另外:put" @"

"VALUES (@UsuarioText, @PasswordText, @TipoText)", conexion)

确保带有@的值与comando.Parameters中的匹配 将其更改为:

comando.Parameters.AddWithValue("@UsuarioText", UsuarioText.Text)
comando.Parameters.AddWithValue("@PasswordText", PasswordText.Text)
comando.Parameters.AddWithValue("@TipoText", TipoText.Text)