![]() |
|
Модераторы: gambit |
![]()
|
|
| maxnoskov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 21.6.2006 Где: Мурманск Репутация: нет Всего: нет |
Есть Dataset. В нем несколько таблиц. Можно ли одним махом удалить все строки во всех таблицах
|
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 4 Всего: 61 |
1) DataSet.Clear() (удалит вместе с таблицами
2)
чем не один мах? |
|||
|
||||
| maxnoskov |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 21.6.2006 Где: Мурманск Репутация: нет Всего: нет |
Может я чего-то не понимаю, но все записи в базе остаются на месте после AcceptChanges и Update. Можно ли так удалять данные из базы? Добавлено @ 15:04 А вот такой код выдает ошибку в in
Говорит что коллекция была изменена. |
||||||
|
|||||||
| arilou |
|
||||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 4 Всего: 61 |
Дык вопрос то был про датасет! Из базы одним махом нельзя. Проще всего несколько раз выполнить SQL-запрос вида (по одному разу для каждой таблицы, если не заморачиваться с relations между таблицами:
|
||||
|
|||||
| maxnoskov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 21.6.2006 Где: Мурманск Репутация: нет Всего: нет |
А если удалить все строки из таблицы например вот так:
А потом дать mouods1.Tables["namereason"].AcceptChanges(); и MOUOAdapter1.Update(mouods1, "namereason"); Не сработает? |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 4 Всего: 61 |
||||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
AcceptChanges нужно делать после Update, иначе записи из таблиц удалятся только в датасете, но не в БД. Удалять нужно только методом DataRow.Delete(), т.к. Clear() удаляет все версии записей, и при Update() изменений в БД отправлено не будет.
-------------------- ![]() |
|||
|
||||
| maxnoskov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 21.6.2006 Где: Мурманск Репутация: нет Всего: нет |
Каюсь, но я искренне был уверен, что именно в таком порядке: AcceptChanges и Update.
Вероятно я не что -то недопонял, но размышлял так: сначала сохраняем изменения в DS с помощью AcceptChanges и только потом передаем их в БД с помощью Update |
|||
|
||||
| rulon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 27.6.2006 Репутация: нет Всего: нет |
А какое IDE исспользуется ??? .NET или 2005 для реализации задачи ???
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Update анализирует состояние (RowState) каждой строки. Если RowState - Unchanged, то строка адаптером игнорируется. Смысл вызова AcceptChanges - перевести все строки в состояние Unchanged (кроме тех, что в состоянии Deleted; вызов AcceptChanges их удаляет), это как бы открывает новую сессию работы с датасетом. -------------------- ![]() |
|||
|
||||
| maxnoskov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 21.6.2006 Где: Мурманск Репутация: нет Всего: нет |
Ничего не понимаю. Делаю вот так
Выдает ошибку: "Параметр ?_1 не имеет значения по умолчанию" Update генерился визардом. В чем загвоздка, нужно задавать параметры или это связано с первичным ключем? Это сообщение отредактировал(а) maxnoskov - 29.6.2006, 19:04 |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 4 Всего: 61 |
||||
|
||||
| maxnoskov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 21.6.2006 Где: Мурманск Репутация: нет Всего: нет |
||||
|
||||
| maxnoskov |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 21.6.2006 Где: Мурманск Репутация: нет Всего: нет |
Всем спасибо за помощь
Правда, Clear не подходит т.к. нужно в случае возникновения исключения при считывании инфы из xml файла откатить удаление. Поэтому выбрал такое решение
Правда, придется для каждой таблицы пускать цикл для удаления, но решение работает Что-то я гоню
Это сообщение отредактировал(а) maxnoskov - 30.6.2006, 14:00 |
||||
|
|||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |