![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
LectorSP |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 13.4.2006 Где: г. Минск Репутация: нет Всего: 2 |
Может кто подскажет в чем дело....если в DataSet есть строки помеченные как Delete при вызове метода Updete пишет вот так
Update requires a valid DeleteCommand when passed DataRow collection with deleted rows. при добавлении строк все нормально...?
Добавлено через 5 минут и 26 секунд после того как добавил SqlCommandBuilder пишет вот что.... Dynamic SQL generation for the DeleteCommand is not supported against a SelectCommand that does not return any key column information. --------------------
Трудно жить на свете негритенку Пете, Бьет его по роже пионер Сережа! Никакими расовыми этническими и религиозными предрассудками я не страдаю!Я за DOT.NET......................ну и за мир во всем мире тоже! |
|||
|
||||
Voyager |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 532 Регистрация: 8.2.2005 Репутация: нет Всего: 18 |
Возможно нужно создавать sqlDataAdapter с автогенерацией команд ("select...", true). А строки из таблицы я обычно удаляю через Remove().
|
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Либо в датасете нет Primary Key, либо команда Select не возвращает колонки с primary key. -------------------- ![]() |
|||
|
||||
LectorSP |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 13.4.2006 Где: г. Минск Репутация: нет Всего: 2 |
и что делать...таблица, которая загоняеться в ДатаСет не с какой другой не связана...и что значит "команда Select не возвращает колонки с primary key" поясните пожалуйста ?
--------------------
Трудно жить на свете негритенку Пете, Бьет его по роже пионер Сережа! Никакими расовыми этническими и религиозными предрассудками я не страдаю!Я за DOT.NET......................ну и за мир во всем мире тоже! |
|||
|
||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: нет Всего: 36 |
это значит, что ни одна колонка не помечена в датасете как первичный ключ а это - что команда SELECT, сгенерированная автоматически или заданная руками, не содержит в списке возвращаемых колонок колонку с первичным ключом приведи структуру таблицы в базе, структуру таблицы в датасете и запросы SELECT и DELETE, которые сконфигурил SqlCommandBuilder |
|||
|
||||
LectorSP |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 13.4.2006 Где: г. Минск Репутация: нет Всего: 2 |
Таблица очень простая ни с какими другими таблицами она не связана...две колонки...колонки с первичным ключем нету....запрос самый обычный.....SELECT * FROM tableName.....таблица в датасете, я как понимаю...точно такая же...а запрос DELETE, почему то пустой, в отличие от SELECT....периодически в дадасет добовляються еще пару таблиц...через SELECT * From tableName....вроде ничего сложного....только всё добавляеться, изменяется, но не удаляется...: ))
--------------------
Трудно жить на свете негритенку Пете, Бьет его по роже пионер Сережа! Никакими расовыми этническими и религиозными предрассудками я не страдаю!Я за DOT.NET......................ну и за мир во всем мире тоже! |
|||
|
||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: нет Всего: 36 |
задай тогда команду DELETE руками -
DELETE FROM tableName WHERE myField = 100 (точный синтаксис зависит от базы и типа колонки) |
|||
|
||||
LectorSP |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 13.4.2006 Где: г. Минск Репутация: нет Всего: 2 |
Точно, когда явно указал, что нужно делать, то все заработало...но почему так...и всегда ли надо прописывать DeleteCommand?
--------------------
Трудно жить на свете негритенку Пете, Бьет его по роже пионер Сережа! Никакими расовыми этническими и религиозными предрассудками я не страдаю!Я за DOT.NET......................ну и за мир во всем мире тоже! |
|||
|
||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: нет Всего: 36 |
надо всегда, но иногда не обязательно
![]() всё дело в том, что SqlCommandBuilder генерирует команды как умеет, почти ничего не зная о структуре БД и о требованиях программиста, в большинстве случаев у него это получается неважно, а иногда, как в данном случае, - вообще не выходит. MS вроде как даже не рекомендует его использование в реальных приложениях. Если нужен полный контроль над выполняемыми запросами - лучше все sql-команды прописать руками. |
|||
|
||||
LectorSP |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 13.4.2006 Где: г. Минск Репутация: нет Всего: 2 |
я всё понял...но у меня ещё один вопрос...строки он у меня удаляет без проблем..но почему то постоянно выдаёт вот это
Concurrency violation: the DeleteCommand affected 0 of the expected 1 records. что это может быть такое...? --------------------
Трудно жить на свете негритенку Пете, Бьет его по роже пионер Сережа! Никакими расовыми этническими и религиозными предрассудками я не страдаю!Я за DOT.NET......................ну и за мир во всем мире тоже! |
|||
|
||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: нет Всего: 36 |
Полагаю, дело в первичном ключе.
По этой же причине (отсутствие этого ключа) SqlCommandBuilder не может нормально сгенерировать DELETE-команду. Если использование primary key неприемлимо и проблема не решится иным способом - придётся выдумывать какой-нибудь workaround ![]() ![]() |
|||
|
||||
LectorSP |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 13.4.2006 Где: г. Минск Репутация: нет Всего: 2 |
очень интересно, надо будет подумать над этим....
но пока что всё работает через try{}catch(){} ![]() --------------------
Трудно жить на свете негритенку Пете, Бьет его по роже пионер Сережа! Никакими расовыми этническими и религиозными предрассудками я не страдаю!Я за DOT.NET......................ну и за мир во всем мире тоже! |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |