Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Базы данных под .NET > Проблемы с adapter.Update(dataSet, tableName); |
Автор: gfmail 23.1.2007, 10:36 | ||
Данный пример взят из МСДН, только параметры функции заменены реальными значениями. При выполнении: "Ошибка синтаксиса в инструкции INSERT INTO." Кажется мне, что OleDbCommandBuilder не генерирует InsertCommand, а вот почему - не пойму. Подскажите, пожалуйста, кто знает.
P.S. Может проблема описана здесь?//мсдн The OleDbCommandBuilder also uses the Connection, CommandTimeout, and Transaction properties referenced by the SelectCommand. The user should call RefreshSchema if one or more of these properties are modified, or if the SelectCommand itself is replaced. Otherwise the InsertCommand, UpdateCommand, and DeleteCommand properties retain their previous values. |
Автор: NET_or_not_NET 23.1.2007, 14:51 | ||||||||
Доброго времени суток! gfmail
На самом деле генерирует. но по непонятной мне причине в примере указано
все эти Get'ы возвращают OleDbCommand, поэтому эти команды надо как-то выполнить... т.е. мы передадим эти команды соответствующим в adapterе По аналогии с примером
пишем следующее:
Проверял, у меня работает |
Автор: gfmail 23.1.2007, 18:31 | ||
Так я делал сам, и результат был аналогичным, поэтому взял пример с мсдн. |
Автор: NET_or_not_NET 23.1.2007, 18:57 | ||
поставте брейк поинт на cb.GetInsertCommand(); и посмотрите что там за запрос, может проблема с именем таблицы если можно выложите запрос который сгенерировал adapter могу выслать свой пример, но он будет всеравно содержать
А если вопрос почему пример из МСДНа не работает, так это не первый и не последний которые не работают. |
Автор: gfmail 25.1.2007, 09:27 | ||
Re:
Буду очень благодарен. ![]() |
Автор: NET_or_not_NET 25.1.2007, 10:48 | ||
Выслал на мыло test.rar и выкладываю сюда Для работы кода необходима БД из MS Access "Борей.mdb" в моем примере она находиться в корне диска D:\ все операции будут проводятся с таблицей "Клиенты", дальше на форму кнопку Button1 и событие OnClick
Удачи! |
Автор: gfmail 25.1.2007, 11:33 |
Спасибо, этот пример работает, а с моим что-то не то ![]() |
Автор: gfmail 25.1.2007, 11:51 |
Изменил высланный проект под свою базу, и получаю ошибку : An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll Additional information: Ошибка синтаксиса в инструкции INSERT INTO. На скрине текст команды. |
Автор: mr.DUDA 25.1.2007, 13:42 |
Судя по скрину, параметры передать в команду INSERT забыли (пресловутые "вопросы"). |
Автор: NET_or_not_NET 25.1.2007, 14:05 | ||||
Теперь уж точно будет работать ![]() если я правильно понимаю у Вас в БД в той таблицы куда Вы записываете есть поля Time, Login, Message я создал свою БД с идентичной таблицей запустил код.... и правда НЕ РАБОТАЕТ!!! ![]() ошибка в следующем: GetInsertCommand() генерирует запрос
Я не работаю с MS Access и поэтому не знаю как правильно это назвать, но Time это зарегистрированное слово или функция или тип. поэтому запрос в должен быть:
Time надо взять в [] Мой совет переименуйте поле Time в своей таблице например на DT (сокращенно от DataTime) или на что угодно (кроме зарегистрированных) и все получиться!!! ![]() |
Автор: gfmail 25.1.2007, 14:18 |
Ура, заработало!!! ![]() ![]() ![]() Большое спасибо NET_or_not_NET!!!, сам бы никогда не догадался(только начал работать с базами). |
Автор: NET_or_not_NET 25.1.2007, 14:35 |
Был рад помочь!!! |