| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB .NET > Обновить DataSet в базу данных |
| Автор: alexburzak 12.3.2007, 18:36 |
| я хотел обновить в своей базе данных DataSet который создал раньше. Вот смотрите вложения, на строчке: "objAdapter.UpdateCommand = objBuilder.GetUpdateCommand" вылитает с криком: «Dynamic SQL generation for the UpdateCommand is not supported against a SelectCommand that does not return any key column information.» Видемо я не понимаю , что я делаю. Пожалуйста наставьте меня на путь истинный! Что я делаю не так? |
| Автор: Naum 13.3.2007, 10:50 |
| Пока не смотрел вложение. Но по ошибке можно кое-что сказать. Если для DbAdapter'а явно не задается команда UpdateCommand, то эта команда генерится автоматически на основании команды SelectCommand. Видимо твоя команда SelectCommand не предоставляет информации о ключевых полях в таблице. Скорее всего в таблице (в самой бд они - ключевые поля - просто не заданы). Есть два выхода или задать эти ключевые поля, или явно задать команду UpdateCommand. |
| Автор: alexburzak 14.3.2007, 17:41 |
| Да наверное, это то что происходит (результат моего дебага), можно пример кода, что бы я понял что происходит, плиз(посмотри вложения)? Влюбом случаии спасибо. |
| Автор: Naum 15.3.2007, 14:11 | ||||||
Если у тебя в базе в таблице Shippers есть ключевое поле, то его надо добавить в select-команду. Например, ключевое поле CompanyID.
Если ключевого поля в таблице Shippers исходной базы нет, тогда его надо добавить. Если же добавлять ключевое поле по какой-либо причине не хочется (я, правда, не знаю ни одной такой причины), то надо ручками дописать комманды INSERT, UPDATE, DELETE. Допустим CompanyName у нас уникальное для каждой записи (правда не понятно, почему бы не сделать тогда его ключевым полем). Тогда
|
| Автор: alexburzak 16.3.2007, 10:23 |
| Огромное спасибо, все так и оказалось. Ни в одной книжке я этого не нашел. Этот вопрос решен, но я накалякал еще один в тему: http://forum.vingrad.ru/topic-141392/kw-dataset.html Это таже область, плиз посмотреть , что можно сделать. |