oledb“INSERT INTO”语句出错

时间:2013-10-22 19:50:45

标签: vb.net

我正在开发一个小项目,我必须使用访问数据库。 我在“INSERT INTO”语句中遇到了一个大问题,并且花了很多时间才找到解决方案。 这是代码的一部分:

     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Try
        connexion.Open()
        Dim cmdString_update As String = "INSERT INTO notes (nom, note) VALUES (@nom, @note)"    
        Dim SQLCommand3 As New OleDbCommand(cmdString_update, connexion)
        SQLCommand3.Parameters.AddWithValue("@nom", nom)
        SQLCommand3.Parameters.AddWithValue("@note", note)
        'SQLCommand3.Parameters.AddWithValue("@commentaire", commentaire)
        SQLCommand3.ExecuteNonQuery()

    Catch ex As OleDbException
        ' Display error
        MsgBox("Error: " & ex.ToString())
    Finally
        ' Close Connection
        connexion.Close()
        MsgBox("Connection Closed")
    End Try

End Sub

这是错误的屏幕截图:h ttps://docs.google.com/file/d/0B3v4Tp1x6sfDMWFEQTJUbUVTTUE/edit?usp=sharing

你能帮助我吗?它让我非常非常疯狂!

非常感谢,抱歉我的英语不好。

(我正在使用Visual Studio Express 2012在VB.NET中编程。)

1 个答案:

答案 0 :(得分:1)

单词NOTE是MS-Access中的reserved keyword 要将该单词与OleDb一起使用,您应该以这种方式更改查询......

 Dim cmdString_update = "INSERT INTO notes (nom, [note]) VALUES (@nom, @note)"    

在被控制的字段周围添加方括号可以避免误解 但是,如果仍然可以,请尝试将字段名称更改为其他名称 否则,每次尝试使用该字段时都会出现此问题。