Frage

INSERT INTO tblExcel (ename, position, phone, email) VALUES ('Burton, Andrew', 'Web Developer / Network Assistant', '876-9259', 'aburton@wccs.edu')

Ich habe eine Access-Tabelle mit fünf Feldern:ID, E-Name, Position, Telefon und E-Mail ... jedes einzelne ist ein reines Textfeld mit 50 Zeichen, außer der Position, die 255 ist, und der ID, die ein Feld mit automatischer Inkrementierung ist.Ich verwende VB.NET, um Daten aus einer Excel-Tabelle zu lesen, die in eine einfache Klasse übertragen werden, die zum Ausfüllen dieser Abfrage verwendet wird.Das Gleiche mache ich mit zwei anderen Tabellen, deren Daten aus einer DB2-Tabelle und einer MySQL-Tabelle durchgezogen werden.Die anderen beiden funktionieren, aber diese einfache INSERT-Schleife schlägt immer wieder fehl, daher glaube ich nicht, dass es meine „InsertNoExe“-Funktion ist, die den ganzen OleDb-Kram verarbeitet.

Also, ähm, gilt diese Abfrage, irgendwelche Feldtitel usw.Sieht falsch aus?Ich kann andere Codeteile posten, wenn jemand sie sehen möchte.

BEARBEITEN: Fest.Ich war mir nicht sicher, ob das breite Bild als Stack Overflow-Bug galt oder nicht, weshalb ich es belassen habe.

EDIT 2: Ich bin dicht.Ich verwende einen try...catch, um die gefälschte Abfrage zu sehen, und überprüfe nicht einmal die ex.messsage.Gah.

INSERT INTO tblExcel (ename, position, phone, email) VALUES ('Burton, Andrew', 'Web Developer / Network Assistant', '876-9259', 'aburton@wccs.edu')

   at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr)
   at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
   at EmployeeList.EmployeeDatabase.ExeNonQuery(String sql) in C:\andy\html\code\vb\EmployeeList\EmployeeDatabase.vb:line 263

Syntax error in INSERT INTO statement.

EDIT 3: Danke, Chris.

War es hilfreich?

Lösung

Ich glaube, „Position“ ist ein reserviertes Wort.

Versuchen...

INSERT in tblExcel (E-Name, [Position], Telefon, E-Mail) WERTE (...

Reservierte Wörter

Andere Tipps

Der Abstand von „Web Developer / Network Assistant“ sieht etwas seltsam aus, vielleicht ist dort ein verstecktes Zeichen (Wagenrücklauf?)

Ich würde versuchen, den Schrägstrich zu entfernen und zu sehen, ob die Einfügung funktioniert. Wenn nicht, versuchen Sie, alle Satzzeichen zu entfernen.Fügen Sie es dann wieder hinzu und vielleicht können Sie den Fehler identifizieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top