Синтаксическая ошибка (отсутствует оператор) в выражении запроса, Oledb UPDATE Statement

1

Я новичок в С#, и я пробовал просматривать множество сообщений, чтобы попытаться решить мою проблему, но мне не повезло, поэтому я подумал, что могу создать сообщение, чтобы попросить о вашей помощи. В принципе, я пытаюсь обновить файл excel с некоторой дополнительной информацией, но проблема заключается в том, что я запускаю исходный код, я все время получаю эту ошибку:

Необработанное исключение типа "System.Data.OleDb.OleDbException" произошло в System.Data.dll

Дополнительная информация: Ошибка синтаксиса (отсутствующий оператор) в выражении запроса "Беспроводные стереонаушники (TAK) (повреждены)".

Я пробовал много способов исправить это, включая использование инструкции INSERT вместо инструкции UPDATE, но ничего не работает.

Еще раз спасибо за помощь =).

int m_intRecipientESMID = Convert.ToInt32(m_recipientESMID);

//Converting Row integer to string
string m_excelRowCoordinateLoanItemTrackerStr = m_excelRowCoordinateLoanItemTracker.ToString();

//Creating a connection directory to access the Excel "LoanItemTracker" file
string m_pathSourceExcelLoanItemTrackerNOHDR = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + textBoxExcelLoanItemTrackerLocation.Text + @";Extended Properties=""Excel 8.0; HDR=NO;ImportMixedTypes=Text;TypeGuessRows=0""";
OleDbConnection m_pathConnectionExcelLoanItemTrackerNOHDR = new OleDbConnection(m_pathSourceExcelLoanItemTrackerNOHDR);

m_pathConnectionExcelLoanItemTrackerNOHDR.Open();   //Open Excel File LoanItemTracker.xlsx to conduct Write/Update process

string m_scannedItemName2 = "Wireless Stereo Headphone (TAK)      (damaged)";

// write the loaned item name into the Excel Spread sheet "LoanItemTracker.xls"
string m_excelRowColumnLoanItemNameCoord = String.Concat(m_excelColumnCoordinateLoanItemNameLoanItemTracker, m_excelRowCoordinateLoanItemTrackerStr);
string m_LoanItemNameWriteCommand = String.Format("UPDATE [Sheet1${0}:{0}] SET F1={1}", m_excelRowColumnLoanItemNameCoord, m_scannedItemName2);
OleDbCommand m_LoanItemTrackerCommandWrite = new OleDbCommand(m_LoanItemNameWriteCommand, m_pathConnectionExcelLoanItemTrackerNOHDR);

m_LoanItemTrackerCommandWrite.ExecuteNonQuery();

m_pathConnectionExcelLoanItemTrackerNOHDR.Close();
Теги:
oledb
oledbcommand

2 ответа

1
Лучший ответ

Вы должны поставить кавычки вокруг текста:

String.Format("UPDATE [Sheet1${0}:{0}] SET F1='{1}'", m_excelRowColumnLoanItemNameCoord, m_scannedItemName2);

Я положил их до и после {1}. Кроме того, предпочтительно использовать параметризованные запросы. Тогда вам не понадобятся котировки.

0

проверьте его: UPDATE [Sheet1${0}:{0}] SET F1='{1}' возможно, вы забыли котировки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню