Syntaxfehler in der INSERT INTO-Anweisung. in VB.net 2010

Ich habe dieses problem seit einer Woche und Suche jedes existierende forum für eine Antwort vielleicht zu dieser Zeit, dass ich mein eigenes problem.

Mein problem war in speichern von Daten in einer Datenbank. Ich habe ein datagrid, das war zu binden, aber angezeigt wird nichts. Ich bin mit .mdb-access-Datenbank. der mdb-Tabelle name war tblinformation.

Es scheint, dass mein problem war in der INSERT INTO-Anweisung, denn es war eine msgbox erscheint, dass jedes mal wenn ich versuche zu speichern, Daten aus einer textbox. und zu guter Letzt, ich bin neu vb.net >..<

btw hier ist mein code:


Imports System.Data.OleDb

Public Class frmbookinfo
Dim cnn As New OleDb.OleDbConnection

Private Sub cmdsave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdsave.Click
    Try
        cnn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=D:\AmosBooks_System\AmosBooks_System\database.mdb")
        Dim command As String
        command = "INSERT INTO tblinformation(title, author, isbn, category, edition, pages, language, yearofpublication, bcode, price) VALUES (@title, @author, @isbn, @category, @edition, @pages, @language, @yearofpublication, @bcode, @price)"
        cnn.Open()
        Dim cmd As OleDbCommand
        cmd = New OleDbCommand(command, cnn)
        cmd.Parameters.AddWithValue("@title", txttitle.Text)
        cmd.Parameters.AddWithValue("@author", txtauthor.Text)
        cmd.Parameters.AddWithValue("@isbn", txtisbn.Text)
        cmd.Parameters.AddWithValue("@category", txtcategory.Text)
        cmd.Parameters.AddWithValue("@edition", txtedition.Text)
        cmd.Parameters.AddWithValue("@pages", txtpages.Text)
        cmd.Parameters.AddWithValue("@language", cmblanguage.Text)
        cmd.Parameters.AddWithValue("@yearofpublication", dtyearpub.Text)
        cmd.Parameters.AddWithValue("@bcode", txtbcode.Text)
        cmd.Parameters.AddWithValue("@price", txtprice.Text)


        cmd.ExecuteNonQuery()
    Catch exceptionObject As Exception
        MessageBox.Show(exceptionObject.Message)
    Finally
        cnn.Close()
    End Try
End Sub
  • Können Sie uns mehr Informationen, welche Ausnahme Sie bekommen und Wann ?
  • haben Sie vergessen, einen Raum, den ich denke...
  • +1 dafür, auch den code, -1 für nicht einschließlich die Fehlermeldung, die Sie erhalten. 😉
  • Sie brauchen einen Platz hier ".... tblinformation(Titel, ..." wie dieses ".... tblinformation (Titel, ..."
  • Hinweis: Wenn Sie entfernen Sie die catch-Klausel, Visual Studio wird Ihnen sagen, welche Linie warf Sie den Fehler. Alternativ kann man auch Debuggen/Ausnahmen und sagen, es zu brechen, auch auf die Ausnahmen behandelt, das hat den gleichen Effekt.
  • Sehen Sie sich diese anderen SO Frage - nach dieser, die OleDbCommand für MS-Access nicht unterstützen benannte Parameter (wie SqlCommand für SQL Server unterstützt) - müssen Sie verwenden ? anstelle von benannten Parametern.
  • Kara, ich Wünsche mir, meine Daten, die eingegeben wurden, in das Textfeld platziert werden in ms access.
  • hier die Meldung. "Syntaxfehler in der INSERT INTO" es war eine form der msgbox.
  • Kara, ich habe es schon aber es ändert sich nichts.. :'(
  • eine neue Fehlermeldung erscheint etwas wie dieses, sorry, aber ich kann nicht posten Bild noch. OleDbException wurde nicht behandelte Syntaxfehler in der INSERT INTO-Anweisung. Hervorhebung: cmd.ExecuteNonQuery()

Schreibe einen Kommentar