C'è qualcosa di sbagliato in questa query?
Domanda
INSERT INTO tblExcel (ename, position, phone, email) VALUES ('Burton, Andrew', 'Web Developer / Network Assistant', '876-9259', 'aburton@wccs.edu')
Ho una tabella di Access che ha cinque campi:id, nome, posizione, telefono ed e-mail... ognuno è un campo di testo semplice con 50 caratteri, ad eccezione della posizione che è 255 e dell'id che è un campo a incremento automatico.Sto utilizzando VB.NET per leggere i dati da una tabella Excel, che viene inserita in una classe semplice utilizzata per compilare quella query.Faccio la stessa cosa con altre due tabelle, i cui dati vengono estratti da una tabella DB2 e da una tabella MySQL.Gli altri due funzionano, ma questo semplice ciclo INSERT continua a fallire, quindi non penso che sia la mia funzione "InsertNoExe" a gestire tutte le cose di OleDb.
Quindi, quella query, i titoli dei campi, ecc.sembra falso?Posso pubblicare altri frammenti di codice se qualcuno vuole vederlo.
MODIFICARE: Fisso.Non ero sicuro se l'immagine ampia contasse o meno come un bug di Stack Overflow, motivo per cui l'ho lasciata.
MODIFICA 2: Sono ottuso.Utilizzo un try...catch per vedere la query fasulla e non controllo nemmeno l'ex.message.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.
MODIFICA 3: Grazie, Chris.
Soluzione
Credo che "posizione" sia una parola riservata.
Tentativo...
INSERISCI in tblExcel (nome, [posizione], telefono, email) VALORI (...
Altri suggerimenti
La spaziatura di "Sviluppatore Web/Assistente di rete" sembra un po' traballante, forse c'è un carattere nascosto lì dentro (ritorno a capo?)
Proverei a togliere la barra e vedere se l'inserto funziona, altrimenti proverei a togliere tutta la punteggiatura.Quindi aggiungilo di nuovo e forse sarai in grado di identificare il bug.