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 (wieSqlCommand
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()
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den syntax-Fehler verursacht wird, durch das Wort der SPRACHE in den Feldnamen ein.
Dieses Wort ist reserviert in JET-SQL und sollte daher in eckige Klammern eingeschlossen werden