|
|
|
Не применять AcceptChanges после DataAdapter.Update.
|
|||
|---|---|---|---|
|
#18+
Несколько таблиц связаны внешними ключами, приходится делать обновления в определённом порядке. Везде пишут про два способа выполнить последовательно удаления, вставки и обновления: вызвать 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. При таком подходе получается что после первого апдейта в 5 строке, все остальные просто не сработают. Как заставить подобный код работать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2010, 11:27 |
|
||
|
|

start [/forum/topic.php?fid=17&fpage=51&tid=1351037]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
78ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
2ms |
| others: | 210ms |
| total: | 375ms |

| 0 / 0 |
