2013-10-22 188 views
0

我正在开发一个小项目,我必须使用访问数据库。 我有一个很大的问题,“INSERT INTO”语句,并花了很多小时寻找解决方案后再次。 这是部分代码:oledb“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

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

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

(我编程VB.NET与Visual Studio Express的2012年)

+0

嗯......很抱歉Andy。 –

回答

1

字注意在MS-Access中reserved keyword
要使用这个词与OLEDB中,你应该改变你的查询以这种方式......

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

添加周围的牵连场方括号将保持它的误会安全。
但是,如果仍然有可能,请尝试将字段名称更改为其他名称。
否则每次尝试使用该字段时都会遇到此问题。

+0

非常感谢史蒂夫。你帮了我很多。下次我会更加严格。但我非常惊讶MS Access并没有警告我这个受保护的工作,因为它在另一个表中发出警告。 –

+0

通常,在C#端,您会收到一个异常,指出“插入....中出现语法错误”。我同意这有点令人困惑。 – Steve