У меня проблемы с удалением строк (DELETE). Каждый раз, когда я добавляю имена столбцов в свой string sql
, он показывает ошибку «Синтаксическая ошибка (отсутствующий оператор) в выражении запроса». Это мой код:Ошибка синтаксиса (отсутствующий оператор) в выражении запроса ""
OleDbConnection myCon = new OleDbConnection("provider = Microsoft.Jet.OLEDB.4.0;DataSource = '" + fileLocation + "'; Extended Properties=Excel 8.0;");
OleDbCommand myCmd = new OleDbCommand();
myCmd.Connection = myCon;
string sql = "DELETE * FROM [" + tablename + "$] where _date = '" + full_date + "'";
myCmd.CommandText = sql;
myCon.Open();
myCmd.ExecuteNonQuery();
myCon.Close();
Для примера моего string sql
значение
"DELETE * FROM [Sheet1$] where _date = '03 09 2015'"
Было бы производить эту ошибку:
Syntax Error (missing operator) in query expression "_date = '03 09 2015'"
У меня нет никаких проблем при вставке данных в моем первенствовать файл, но когда дело доходит до удаления, это говорит об этой ошибке. Тем не менее практикующих Interop пожалуйста, голый со мной
Вы не можете использовать '' * для удаления высказывания и его как 'удалить от' –
Вы всегда должны использовать [параметризованные запросы] (http://blog.codinghorror.com/give-me-parameterized-sql-or-give-me-death /). Этот тип конкатенаций строк открыт для [SQL Injection] (http://en.wikipedia.org/wiki/SQL_injection) атак. Также столбцом '_date' должен быть тип даты/времени вместо символа IMO :. И используйте инструкцию 'using' для размещения ваших соединений и команд. –