我正在开发一个小项目,我必须使用访问数据库。 我在“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中编程。)
答案 0 :(得分:1)
单词NOTE是MS-Access中的reserved keyword 要将该单词与OleDb一起使用,您应该以这种方式更改查询......
Dim cmdString_update = "INSERT INTO notes (nom, [note]) VALUES (@nom, @note)"
在被控制的字段周围添加方括号可以避免误解 但是,如果仍然可以,请尝试将字段名称更改为其他名称 否则,每次尝试使用该字段时都会出现此问题。