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

Я пишу строку для INSERT в файл mdb в C#, но ошибка «синтаксическая ошибка в вставке в statment», взятая в коде.
Я тестирую строку непосредственно в Microsoft Access 2007 и запрос вставлен без ошибок.

string qu = "INSERT INTO Reports ( docid, biopsy, normal, section, subsection, title, items, [text] ) VALUES (21, False, False, 'Recommendation', 'a', 'Injection', 'a', 'a');";
OleDbCommand cmd = new OleDbCommand();
OleDbDataAdapter da = new OleDbDataAdapter();
DataSet ds = new DataSet();
OleDbConnection con = Model.getDataConnection();

cmd.Connection = con;
cmd.CommandText = qu;
con.Open();
try
{
    cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
    System.Windows.Forms.MessageBox.Show("data error!\n" + ex.Message);
    return false;
}

Исходная строка, которая показывает правильный брекетинг, до неудачного редактирования.

string qu = "INSERT INTO Reports ( docid, biopsy, normal, [section], subsection, title, items, [text] ) VALUES (21, False, False, 'Recommendation', '', 'Injection', '', '');";
0
nl ja de
Не могли бы вы также указать строку подключения?
добавлено автор Alex Filipovici, источник
Я выполнил именно этот запрос против тестовой базы данных, и он работает. Я подозреваю, что у вас другой тип данных, чем вы думаете об одном из полей.
добавлено автор Fionnuala, источник
Здесь: string sql = "create table Reports (первичный ключ счетчика docid, биопсия yesno, normal yesno, [section] текст, текст подсекции, текст заголовка, текст элементов, текст [текст]);"; BTW text - это всего лишь одно из худших имен, которые вы могли бы выбрать для поля Access.
добавлено автор Fionnuala, источник
Вы уверены, что это одна и та же база данных в обоих случаях? Вы не копируете папку проекта?
добавлено автор Fionnuala, источник
Я думаю, что проблема - это «пустой» символ. Символ не может быть пустым, но имеет фиксированный размер. Попробуйте использовать пустую строку или «\ 0» для нулевого символа.
добавлено автор John Willemse, источник
Не используйте '' или NULL. Используйте \ "\" (который является "") или '\ 0', который является значением символа null, а не объектом.
добавлено автор John Willemse, источник
Вы знаете внутреннюю работу Access? Вполне возможно, что некоторые символы преобразуются внутри, чтобы предотвратить ошибки. Вы пробовали это в своем коде?
добавлено автор John Willemse, источник
Я создал тестовый проект, скопировал ваш код, создал тестовую базу данных, и на моей стороне он работает как шарм, даже с помощью '' и используя те же имена полей, что и вы ...
добавлено автор John Willemse, источник
Я использую '' и NULL, но не ответил!
добавлено автор mrash, источник
Нет, в ms доступ мой запрос правильный.
добавлено автор mrash, источник
Я тестирую образцы в отладке кода и не отвечаю.
добавлено автор mrash, источник
спасибо, но мой образ базы данных - это ID> AutoNumber, docid> Number, biopsy, normal> Yes/No, section, subsection, title, items, text> Text
добавлено автор mrash, источник
У меня есть функция, подобная всем моим запросам, которые получают параметр qu в качестве параметра. У меня нет проблем в других моих запросах! в выборе, обновлении и вставке.
добавлено автор mrash, источник
проблема есть [раздел] !!!
добавлено автор mrash, источник

1 ответы

Reports, section, and text are all reserved words. Enclose them in brackets in your SQL statement.

INSERT INTO [Reports] (
    docid, biopsy, normal, [section], subsection, title, items, [text])
VALUES (
    21, False, False, 'Recommendation', 'a', 'Injection', 'a', 'a');
0
добавлено
Вы были введены в заблуждение от плохого редактирования. Обратите внимание, что два человека опросили запрос.
добавлено автор Fionnuala, источник
большое спасибо! Джон Виллем и Рему!
добавлено автор mrash, источник
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)