0

私は小さなプロジェクトに取り組んでおり、アクセス データベースを使用する必要があります。「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 でプログラミングしています。)

4

1 に答える 1

1

NOTE という単語は、MS-Accessの予約済みキーワードです。
その単語を OleDb で使用するには、クエリを次のように変更する必要があります...

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

侵害されたフィールドの周りに角括弧を追加すると、誤解を防ぐことができます。
ただし、可能であれば、フィールド名を別の名前に変更してみてください。
そうしないと、フィールドを使用しようとするたびにこの問題が発生します。

于 2013-10-22T19:56:27.277 に答える