powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не применять AcceptChanges после DataAdapter.Update.
2 сообщений из 2, страница 1 из 1
Не применять AcceptChanges после DataAdapter.Update.
    #36909078
mrB1n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Несколько таблиц связаны внешними ключами, приходится делать обновления в определённом порядке. Везде пишут про два способа выполнить последовательно удаления, вставки и обновления: вызвать DataTable.GetChanges и вызвать DataTable.Select. Первый способ дублирует данные в новую таблицу, второй нет. С точки зрения экономии ресурсов, а также чтоб возвратить стандартными способами новый Id при вставке лучще использовать второй способ, но дело в том что после любого апдейта(скажем сделали сначала вставки) метод DataAdapter.Update() вызывает DataTable.AcceptChanges(), и теряет всю историю изменений, соответственно уже нет способа определить какие строки были изменены. Тем не менее способ типа этого описан и в книгах и в интернете:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
01.
connection.Open(); 
02.
try
03.
{ 
04.
daParent.Update(ds1.Tables["Parent"].Select("","",  
05.
DataViewRowState.Added));  
06.
daChild.Update(ds1.Tables["Child"].Select("","",  
07.
DataViewRowState.Added)); 
08.
daParent.Update(ds1.Tables["Parent"].Select("","",  
09.
DataViewRowState.ModifiedCurrent));  
10.
daChild.Update(ds1.Tables["Child"].Select("","",  
11.
DataViewRowState.ModifiedCurrent)); 
12.
daChild.Update(ds1.Tables["Child"].Select("","",  
13.
DataViewRowState.Deleted));  
14.
daParent.Update(ds1.Tables["Parent"].Select("","",  
15.
DataViewRowState.Deleted)); 
16.
} 
17.
finally
18.
{ 
19.
connection.Close(); 
20.
}

При таком подходе получается что после первого апдейта в 5 строке, все остальные просто не сработают. Как заставить подобный код работать?
...
Рейтинг: 0 / 0
Не применять AcceptChanges после DataAdapter.Update.
    #36910945
mrB1n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хм, похоже это происходит только в MySqlConnector. Кто-то написал что это бага, а они дураки и "исправили" неподумав http://bugs.mysql.com/bug.php?id=54863 .
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не применять AcceptChanges после DataAdapter.Update.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]