|
|
|
Удаление строки из DataSet и обновление БД Access
|
|||
|---|---|---|---|
|
#18+
Имеется БД Access, 2 таблицы: Nacladnye и Goods. Загружаем их в DataSet: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Из таблицы ds.Tables["Nacladnye"] выводим строки в ListView. Удаляем строку из таблицы: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: plaintext 1. 2. 3. 4. 5. 6. В локальном DataSet ее нет. Вопрос: как сделать так, чтобы строка из Nacladnye удалялась из БД. команды удаления/обновления в DataAdapter'е: Код: plaintext 1. 2. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2006, 12:47 |
|
||
|
Удаление строки из DataSet и обновление БД Access
|
|||
|---|---|---|---|
|
#18+
может сначала удалить из дочерней таблицы, а потом из основной? Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2006, 14:52 |
|
||
|
Удаление строки из DataSet и обновление БД Access
|
|||
|---|---|---|---|
|
#18+
HandKotможет сначала удалить из дочерней таблицы, а потом из основной? Нет, так не выдет. Update используется для обновления (а не только для удаления). При вставке новых строк из БД получаем автоинкремент и изменяем (каскадно) через DataRelation значение idNacl в дочерней таблице: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2006, 17:05 |
|
||
|
Удаление строки из DataSet и обновление БД Access
|
|||
|---|---|---|---|
|
#18+
Глянь в адаптерах для каждой таблицы команду на удаление строки? Может в адаптере род-й таблицы отсутствует таковая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2006, 19:58 |
|
||
|
Удаление строки из DataSet и обновление БД Access
|
|||
|---|---|---|---|
|
#18+
LuterГлянь в адаптерах для каждой таблицы команду на удаление строки? Может в адаптере род-й таблицы отсутствует таковая. Она присутствует не только в адаптере но и в моем первом посте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2006, 15:59 |
|
||
|
Удаление строки из DataSet и обновление БД Access
|
|||
|---|---|---|---|
|
#18+
вот мой кусок кода Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. здесь тоже участвуют 2 таблицы Table1 - главная, table2 - подчиненная связь "1-многое" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2006, 09:31 |
|
||
|
Удаление строки из DataSet и обновление БД Access
|
|||
|---|---|---|---|
|
#18+
Создал простую БД с одной таблицей. В локальном dataset'е удаляю запись, но в самой БД после выполнения Update строки остаются. Новые записи и измененные передаются без проблем. Почему не удаляются записи из Access? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 22:15 |
|
||
|
Удаление строки из DataSet и обновление БД Access
|
|||
|---|---|---|---|
|
#18+
а воопшето зачем такой запрос?! Код: plaintext 1. а не просто ли писать так?! Код: plaintext ---- www.hramin.jino-net.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2006, 12:58 |
|
||
|
Удаление строки из DataSet и обновление БД Access
|
|||
|---|---|---|---|
|
#18+
simply_sash Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. а зачем вы удаляете записи из коллекции Rows? Используйте метод Delete . Код: plaintext Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2006, 15:37 |
|
||
|
Удаление строки из DataSet и обновление БД Access
|
|||
|---|---|---|---|
|
#18+
Raminа воопшето зачем такой запрос?! Код: plaintext 1. Такой запрос создает Мастер при создании dataadapter'а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2006, 15:15 |
|
||
|
Удаление строки из DataSet и обновление БД Access
|
|||
|---|---|---|---|
|
#18+
simply_sash Такой запрос создает Мастер при создании dataadapter'а. по теме: http://www.sql.ru/forum/actualthread.aspx?tid=357466 в данном случае не в запросе дело Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2006, 16:07 |
|
||
|
Удаление строки из DataSet и обновление БД Access
|
|||
|---|---|---|---|
|
#18+
авторв данном случае не в запросе дело именно в запросе! он не удаляет из гоодс! ---- www.hramin.jino-net.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2006, 21:54 |
|
||
|
Удаление строки из DataSet и обновление БД Access
|
|||
|---|---|---|---|
|
#18+
Всем спасибо за участие. Проблема решена. Методом научного тыка установлено, что не передаются удаленные строки из DataSet после вызова метода AcceptChanges(). Очевидно при передачи одновлений используется флаг DataRowState.Deleted, который после AcceptChanges() удаляется вместе со строкой и удаленные строки остаются в БД и после обновления. Поступаю так. Когда требуется передать обновления из локального DataSet в БД: 1. удаляю все удаленные (простите за тавтологию) строки из дочерней таблицы; 2. -//- из родительской таблицы; 3. вызываю AcceptChanges(); 4. передаю обновления в родительскую таблицу; 5. передаю обновления в дочернюю таблицу. 2: Ramin. "По умолчанию мастер Data Adapter Configuration Wizard добавляет в раздел WHERE запросов, передающих отложенные изменения и удаления, все столбцы, не содержащие BLOB-данных. Если снять флажок Use Optimistic Concurrency, мастер добавит в раздел WHERE таких запросов только поля первичного ключа.", стр. 379 (с) Дэвид Сеппа. Microsoft ADO.NET/Пер. с англ. — М.: Издательско-торговый дом «Русская Редакция», 2003- — 640 стр.: ил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2006, 15:06 |
|
||
|
Удаление строки из DataSet и обновление БД Access
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2006, 18:03 |
|
||
|
Удаление строки из DataSet и обновление БД Access
|
|||
|---|---|---|---|
|
#18+
Raminобновление на каждую руку не крсиво! Это вы о чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2006, 15:44 |
|
||
|
Удаление строки из DataSet и обновление БД Access
|
|||
|---|---|---|---|
|
#18+
Ramin именно в запросе! он не удаляет из гоодс! если бы это имело место, хотя из кода автора видно, что это нет здесь такой проблемы, то мы бы получили DBConcurrencyException . simply_sash Всем спасибо за участие. Проблема решена. Методом научного тыка установлено, что не передаются удаленные строки из DataSet после вызова метода AcceptChanges(). Очевидно при передачи одновлений используется флаг DataRowState.Deleted, который после AcceptChanges() удаляется вместе со строкой и удаленные строки остаются в БД и после обновления. лишнее в вашем коде не только AcceptChanges. см. мой первый пост http://www.sql.ru/forum/actualthread.aspx?tid=322716#3359670 simply_sash Поступаю так. Когда требуется передать обновления из локального DataSet в БД: 1. удаляю все удаленные (простите за тавтологию) строки из дочерней таблицы; 2. -//- из родительской таблицы; 3. вызываю AcceptChanges(); 4. передаю обновления в родительскую таблицу; 5. передаю обновления в дочернюю таблицу. изобретаете велосипед, master-detail проапдейтить можно подобным образом /topic/82293#594225 но для этого нужно корректно удалять записи, а именно не удалять записи из коллекции DataRowCollection при помощи методов Remove и RemoveAt и лучше вообще забыть про использование этих методов. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 06:25 |
|
||
|
Удаление строки из DataSet и обновление БД Access
|
|||
|---|---|---|---|
|
#18+
Sa[quot Ramin] но для этого нужно корректно удалять записи, а именно не удалять записи из коллекции DataRowCollection при помощи методов Remove и RemoveAt и лучше вообще забыть про использование этих методов. Так я и использую Delete. Remove и RemoveAt я пробовал, когда не передавались удаленные записи в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 14:28 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=34123968&tid=1353069]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 359ms |

| 0 / 0 |
