Há algo de errado com esta consulta?
Pergunta
INSERT INTO tblExcel (ename, position, phone, email) VALUES ('Burton, Andrew', 'Web Developer / Network Assistant', '876-9259', 'aburton@wccs.edu')
Eu tenho uma tabela do Access que possui cinco campos:id, ename, posição, telefone e e-mail... cada um é um campo de texto simples com 50 caracteres, exceto para posição que é 255 e id que é um campo de incremento automático.Estou usando um VB.NET para ler dados de uma tabela do Excel, que é inserida em uma classe simples usada para preencher essa consulta.Faço a mesma coisa com duas outras tabelas, cujos dados são extraídos de uma tabela DB2 e de uma tabela MySQL.Os outros dois funcionam, mas esse loop INSERT simples continua falhando, então não acho que seja minha função "InsertNoExe" que lida com todo o material do OleDb.
Então, hum, essa consulta, qualquer um dos títulos dos campos, etc.parece falso?Posso postar outros trechos de código se alguém quiser ver.
EDITAR: Fixo.Eu não tinha certeza se a imagem larga contava como um bug do Stack Overflow ou não, e foi por isso que a deixei.
EDITAR 2: Eu sou denso.Eu uso um try...catch para ver a consulta falsa e nem verifico a ex.messsage.Ah.
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.
EDITAR 3: Obrigado, Chris.
Solução
Acredito que "posição" é uma palavra reservada.
Tentar...
INSERT em tblExcel (enome, [posição], telefone, email) VALUES (...
Outras dicas
O espaçamento de "Desenvolvedor Web/Assistente de Rede" parece um pouco instável, talvez haja um caractere oculto ali (retorno de carro?)
Eu tentaria retirar a barra e ver se a inserção funciona, caso contrário, tentaria retirar toda a pontuação.Em seguida, adicione-o novamente e talvez você consiga identificar o bug.