![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
artstalker |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 5.2.2009 Репутация: нет Всего: нет |
Есть база данных Access, и её проекция в программе - DataSet. Необходимо выполнять синхронизацию изменений в DataSet с БД(insert, delete, update). Юзаю OleDbDataAdapter+OleDbCommandBuilder. Изменение строк и удаление нормально проходит. А вот на добавлении возникает исключение "Ошибка синтаксиса в инструкции INSERT INTO".
Вопрос: как просмотреть сгенерированную через OleDbCommandBuilder команду? Вот такое ощущение что читал про это уже в какой-то книге. Там как раз пример был как в отладчик выводить все SQL команды, но где не помню... Это сообщение отредактировал(а) artstalker - 3.12.2009, 00:45 |
|||
|
||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
через свойство OleDbDataAdapter.InsertCommand наверное можно посмотреть CommandText
-------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
artstalker |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 5.2.2009 Репутация: нет Всего: нет |
Вот так как раз не получается. Там insertcommand, updatecommand и deletecommand равны null. Видимо там какой-то другой механизм взаимодействия(OleDbDataAdapter и OleDbCommandBuilder)
|
|||
|
||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
-------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
artstalker |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 5.2.2009 Репутация: нет Всего: нет |
Спасибо, этот метод работает. Я начал в чём ошибка. CommadnBuilder формирует такую строку на Insert:
"INSERT INTO Users (User, Pass, Role, Name, ID) VALUES (?, ?, ?, ?, ?)" При добавлении строки провайдер ругается. Когда я ручками прописал команду в таком виде: "INSERT INTO [Users] ([User], [Pass],[Role],[Name],[ID]) VALUES (@User, @Pass, @Role,@Name,@ID)", то всё работает. Т.е. дело в скобках. Мне не известно почему... И тогда такой вопрос: посколько из-за описанной выше причины я не могу воспользоваться CommadnBuilder-ом, как мне руками прописать запросы на встаку, изменение и удаление? Дело в том что аргументы dataGridview передаёт же автоматически. И вот как это согласовать в запросе? |
|||
|
||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
а зачем? Если dataGridview биндится через OleDbDataAdapter к базе данных, то и все команды на insert, update и delete будут автоматически генерироваться самим OleDbDataAdapter-ом. Последовательность работы такая: создаем объекты Connection и SelectCommand, создаем OleDbDataAdapter, делаем запрос к базе и получаем bindingSource для dataGridview а потом просто вызываем время от времени OleDbDataAdapter.Update() вот и все. если адаптер получил данные из определенных таблиц (используя только select команду), то он же и сможет эти таблицы правильно обновить. вот простой пример или вы хотите сделать выборку из БД по одним критериям, а обновить - совершенно другие данные и по совершенно другим критериям? ) -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |