Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновить DataSet в базу данных 
V
    Опции темы
alexburzak
  Дата 12.3.2007, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 254
Регистрация: 12.3.2007
Где: Hadera

Репутация: нет
Всего: 1



я хотел обновить в своей базе данных 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.» 
Видемо я не понимаю , что я делаю.
Пожалуйста наставьте меня на путь истинный!
Что я делаю не так?


Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  13.aspx.vb.txt 2,58 Kb
PM   Вверх
Naum
Дата 13.3.2007, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 2
Всего: 15



Пока не смотрел вложение. Но по ошибке можно кое-что сказать. Если для DbAdapter'а явно не задается команда UpdateCommand, то эта команда генерится автоматически на основании команды SelectCommand. Видимо твоя команда SelectCommand не предоставляет информации о ключевых полях в таблице. Скорее всего в таблице (в самой бд они - ключевые поля - просто не заданы). Есть два выхода или задать эти ключевые поля, или явно задать команду UpdateCommand.


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
alexburzak
Дата 14.3.2007, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 254
Регистрация: 12.3.2007
Где: Hadera

Репутация: нет
Всего: 1



Да наверное, это то что происходит (результат моего дебага), можно пример кода, что бы я понял что происходит, плиз(посмотри вложения)? Влюбом случаии спасибо.

Это сообщение отредактировал(а) alexburzak - 14.3.2007, 17:42
PM   Вверх
Naum
Дата 15.3.2007, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 2
Всего: 15



Цитата

strSQL = "SELECT CompanyName, Phone FROM Shippers;"

Если у тебя в базе в таблице Shippers есть ключевое поле, то его надо добавить в select-команду. Например, ключевое поле CompanyID.
Код

strSQL = "SELECT CompanyID, CompanyName, Phone FROM Shippers;"

Если ключевого поля в таблице Shippers исходной базы нет, тогда его надо добавить. Если же добавлять ключевое поле по какой-либо причине не хочется (я, правда, не знаю ни одной такой причины), то надо ручками дописать комманды INSERT, UPDATE, DELETE.
Допустим CompanyName у нас уникальное для каждой записи (правда не понятно, почему бы не сделать тогда его ключевым полем).
Тогда 
Код

Dim sqlInsertCommand As New SqlCommand("INSERT INTO Shippers ( CompanyName, Phone) VALUES (@CompanyName, @Phone)", objConnection)
sqlInsertCommand.Parameters.Add(New SqlParameter("@CompanyName", SqlDbType.NVarChar, 0, "CompanyName") 
sqlInsertCommand.Parameters.Add(New SqlParameter("@Phone", SqlDbType.NVarChar, 0, "Phone") 
Dim sqlUpdateCommand As New SqlCommand("UPDATE Shippers SET Phone = @Phone WHERE CompanyName LIKE @CompanyName", objConnection)
sqlUpdateCommand.Parameters.Add(New SqlParameter("@CompanyName", SqlDbType.NVarChar, 0, "CompanyName") 
sqlUpdateCommand.Parameters.Add(New SqlParameter("@Phone", SqlDbType.NVarChar, 0, "Phone") 
Dim sqlDeleteCommand As New SqlCommand("DELETE FROM Shippers WHERE CompanyName LIKE @CompanyName", objConnection)
sqlDeleteCommand.Parameters.Add(New SqlParameter("@CompanyName", SqlDbType.NVarChar, 0, "CompanyName") 
objAdapter.InsertCommand = sqlInsertCommand
objAdapter.UpdateCommand = sqlUpdateCommand
objAdapter.DeleteCommand = sqlDeleteComman



--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
alexburzak
  Дата 16.3.2007, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 254
Регистрация: 12.3.2007
Где: Hadera

Репутация: нет
Всего: 1



Огромное спасибо, все так и оказалось.
Ни в одной книжке я этого не нашел.
Этот вопрос решен, но я накалякал еще один в тему:
http://forum.vingrad.ru/topic-141392/kw-dataset.html
Это таже область, плиз посмотреть , что можно сделать.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.