![]() |
|
Модераторы: gambit |
![]()
|
|
| bobos |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 5.6.2006 Репутация: нет Всего: нет |
Доброго всем времени суток!
Кто-нибудь может подсказать как сделать правильно - а то никак не могу забороть красиво! Работаю в VB.NET Имеется БД в АКССЕСС. Заливаю ДатаСет из БД. Произвожу запись новой строки. Переношу изменения коммандбилдером в БД. Делаю AcceptChanges для ДатаСет. До этого момента все визуально в порядке. Если удалить запись из ДатаСет и опять перенести билдером изменения в БД, выскакивает ошибка "Нарушение параллелизма! Изменение затронуло 0 записей!" Если заново залить ДатаСет, то все проиходит нормално и ошибка не выскакивает! В чем загвоздка-то? Мож в голове моей тугой? |
|||
|
||||
| thomas |
|
|||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 35 Всего: 65 |
bobos,
Приветствую. А как работаем: в дизайнере ДС создаем или через код? И для полноты картины, желательно код в студию. -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
| bobos |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 5.6.2006 Репутация: нет Всего: нет |
Стыдно признаться, но я не умею делать в дизайнере- только через код!...
А как код приводить? Весь что ли? Там навернуто, будь здоров... Причем есть класс родитель и два класса дети. Один из них заканчивается на этом. А вот у второго есть еще две ветви производных. Одна из которых имеет еще имеет производные. Так вот первая, которая обрывается сразу - пишется в базу и удаляется на ура! А вот со второй (длинной) сплошные проблемы. Смотрел в базе - все идеально записывается. Из Акссесса напрямую все удаляется без вопросов. После перезаливки ДатаСет все тоже идет гладко. Такое ощущение, что лажа происходит где-то в датаадаптерах.... Но все сделано одинаково для всех ветвей(скопировано с некоторыми изменениями) И одно работает, а второе нет! пример обновления через билдер
|
|||
|
||||
| bobos |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 5.6.2006 Репутация: нет Всего: нет |
Здесь набросок ДатаСет
|
|||
|
||||
| thomas |
|
||||||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 35 Всего: 65 |
bobos,
Приветствую. Две рекомендации: - после вызова метода update для датаадаптера неплохо сделать DataSet.AcceptChanges()
- если ваши таблицы в БД имеют первичные ключи(а они должны их иметь, по идее), то зачем вы создаете в датасете в таблицах дополнительные поля как первичные ключи? т.е. вместо вот этого
просто заполните ДатаСет тремя таблицами при помощи своих трех датаадаптеров.
и в вашем Датасете окажется три таблицы идентичные по своей структуре таблицам из БД. Естественно заполненные данными. -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
||||||
|
|||||||
| bobos |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 5.6.2006 Репутация: нет Всего: нет |
я именно так и делаю ("Делаю AcceptChanges для ДатаСет")
ключи создаются для работы со строками... без них не отбираются строки методом Find может быть, я не совсем прав... но все было изучено самостоятельно методом тыка так что уж как есть, не обессудьте |
||||
|
|||||
| bobos |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 5.6.2006 Репутация: нет Всего: нет |
Вопрос решился просто:
Изменения делаются в каком-то родительском классе! Таблица в БД одна для всего дерева родителей и потомков! Если есть классы потомки (возможно несколько вложений), в котрых присутстствуют логические поля (соотвтетствеено в БД есть поля boolean), то эти поля при записи класса в ДатаСет надо всегда заполнять (false) |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |