Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Про DataGrid / 4 сообщений из 4, страница 1 из 1
04.01.2005, 11:09
    #32853511
nostra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про DataGrid
Пример,
foreach (DataRow rw in tbl.Rows)
{
if ( rw["TagName"].ToString() == "R" )
tbl.Rows.Remove(rw);
}
Вылетает ошибка:
Collection was modified; enumeration operation may not execute.

Как же тогда "проредить" таблицу?
...
Рейтинг: 0 / 0
04.01.2005, 11:18
    #32853517
nostra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про DataGrid
Небольшое, но важное замечание: фильтр не поможет.
Пояснения: используются 2 таблицы -- один-ко-многим.
Берётся каждая запись из 1-ой таблицы (один) и по ПК - все соответствующие записи из 2-ой (многие). Если не все выбранные записи из 2-ой таблицы существуют в другой БД, то основная запись 1-ой таблицы удаляется.
Вот такая вот заморочка.

Пример, конечно, не похож на условия, но отражает суть проблемы, так сказать, её ядро.
...
Рейтинг: 0 / 0
04.01.2005, 12:08
    #32853560
Bigheadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про DataGrid
При переборе коллекции оператором foreach саму коллекция изменять нельзя (т.к. это может нарушить логику работы foreach). И пояснение здесь совсем непричем. Таково ограничение любого цикла foreach.
Выход. Использовать обычный цикл for.

Кстати попробуйте еще вместо Remove использовать rw.Delete(), а затем tbl.AcceptChanges(). Отличие описано в MSDN.
...
Рейтинг: 0 / 0
04.01.2005, 12:19
    #32853568
nostra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про DataGrid
2БольшаяГолова: Спасибо, очень помогли!
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Про DataGrid / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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