|
|
|
проблемы при удалении из datatable
|
|||
|---|---|---|---|
|
#18+
Есть такая проблема: при удалении из строк из datatable, если этот datatable является datasource для datagridview поток виснет. Если не указывать его как datasource, все работает нормально. Вот пример кода: Эта процедура выполняется в отдельном потоке. Перед запуском потока получаем ссылку на основной поток приложения и сохраняем ее в mainThread. Код: 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. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. Для тех кому лень читать код: сначала останавливаем основной поток программы: mainThread.Suspend(); потом получаем из базы id строки в strSelect, которую надо удалить. и удаляем вот так: if (Program.dbConn.ds.Tables[strTableName].Select(strSelect).Length > 0) Program.dbConn.ds.Tables[strTableName].Rows.Remove( Program.dbConn.ds.Tables[strTableName].Select(strSelect)[0]); возобнавляем выполнение основного потока: mainThread.Resume(); Почему при "привязаном" datatable прога виснет на методе Remove ? Подскажите, в чем может быть дело... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 14:48 |
|
||
|
проблемы при удалении из datatable
|
|||
|---|---|---|---|
|
#18+
krot-s Почему при "привязаном" datatable прога виснет на методе Remove ? все не прочитал ) а в чем необходимость использования метода Remove ? Код: plaintext Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 20:51 |
|
||
|
проблемы при удалении из datatable
|
|||
|---|---|---|---|
|
#18+
Sa krot-s Почему при "привязаном" datatable прога виснет на методе Remove ? все не прочитал ) а в чем необходимость использования метода Remove ? Код: plaintext Один из пользователей удалил строку из таблицы. Всем остальным доходит сообщение о удалении с id этой строки. Соответственно ее надо удалить из datatable. Чем кроме Remove или Delete это еще можно сделать (разницы между этими методами практически нету; Remove - это тот же Delete, только без вызова AcceptChanges) ? Тут наверняка что-то с тредами, тока я в них не силен... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 22:04 |
|
||
|
проблемы при удалении из datatable
|
|||
|---|---|---|---|
|
#18+
krot-s Remove - это тот же Delete, только без вызова AcceptChanges) нет не тоже самое. Метод Delete применять не пробовали? Вообще код выше довольно таки путанный, вопрос NW какой версии? Код: plaintext Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 22:26 |
|
||
|
проблемы при удалении из datatable
|
|||
|---|---|---|---|
|
#18+
Sa krot-s Remove - это тот же Delete, только без вызова AcceptChanges) нет не тоже самое. Метод Delete применять не пробовали? Вообще код выше довольно таки путанный, вопрос NW какой версии? Код: plaintext А в чем разница между Remove и Delete? В msdn написано, что Remove отличается от Delete только тем, что AcceptChanges не вызывается, а Delete вызывает его неявно. Может вопрос и глупый, но чтотакое NW ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 23:05 |
|
||
|
проблемы при удалении из datatable
|
|||
|---|---|---|---|
|
#18+
krot-s А в чем разница между Remove и Delete? В msdn написано, что Remove отличается от Delete только тем, что AcceptChanges не вызывается, а Delete вызывает его неявно. тем и отличаются :-). Remove включает в себе вызов Delete и здесь наоборот: Remove вызывает AcceptChanges, а не Delete. Мне интересно пробовали ли вы использовать Delete и какие результаты. krot-s чтотакое NW ? NW - это NetFramework. Судя по всему у вас NW 1.1. P.S. старайтесь не злоупотреблять оверквоттингом. Код: plaintext Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 22:40 |
|
||
|
проблемы при удалении из datatable
|
|||
|---|---|---|---|
|
#18+
NW - 2.0 через delete надо попробовать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2007, 15:17 |
|
||
|
проблемы при удалении из datatable
|
|||
|---|---|---|---|
|
#18+
krot-s NW - 2.0 а вы разве не получаете варнинг компилятора о том что метод Suspend() obsolete? Код: plaintext Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2007, 19:08 |
|
||
|
проблемы при удалении из datatable
|
|||
|---|---|---|---|
|
#18+
Sa krot-s NW - 2.0 а вы разве не получаете варнинг компилятора о том что метод Suspend() obsolete? Код: plaintext Получал, но по безмозглости не обратил внимания. Переделал все по-другому: второй поток получает только факт изминения в базе и данные, что это за изминение. Потом через Invoke вызывает метод из основного потока, которые и скачивает изминения. Пока кажись работает... p.s. если кому вдруг надо код - обращайтесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2007, 16:54 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=34327799&tid=1352944]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 370ms |

| 0 / 0 |
