синтаксическая ошибка вставки oledbcommand excel

#c# #asp.net #excel

#c# #asp.net #excel

Вопрос:

    string strSQL = "INSERT INTO "   firstSheetName   "(Date, Market, Source, Commodity, Frequency, Price, Report_Type, MISC, Breeds, Age_Group, Gender, Grade) VALUES ('Beth', 'Hart','Beth', 'Hart','Beth', 'Hart','Beth', 'Hart','Beth', 'Hart','Beth')";

 OleDbCommand OleDbCommand = new OleDbCommand(strSQL, oconn);

   OleDbCommand.ExecuteNonQuery();
 

в чем может быть проблема?

Ответ №1:

Вам нужен пробел после "INSERT INTO " firstSheetName "(Date,

Для

"INSERT INTO " firstSheetName " (Date,

Еще одна вещь, которую я заметил, — это то, что у вас есть 12 значений столбцов и только 11 значений данных. Вам нужно будет добавить 12-е значение данных.

Комментарии:

1. нет, это тоже не решает проблему. $ разрешены в названии?

2. Измените свой запрос на "INSERT INTO [" firstSheetName "] (Date, etc.

3. Конечно INTO [" firstSheetName "$]

4. @Remou: У меня сложилось впечатление, что firstSheetName это равносильно чему-то вроде MySheet$

5. Хороший довод, но я подозреваю, что это не так. (Я должен был добавить @ для OP, потому что комментарий был гораздо больше предназначен для @mazhar)