powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Про DataGrid
4 сообщений из 4, страница 1 из 1
Про DataGrid
    #32853511
nostra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример,
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
Про DataGrid
    #32853517
nostra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Небольшое, но важное замечание: фильтр не поможет.
Пояснения: используются 2 таблицы -- один-ко-многим.
Берётся каждая запись из 1-ой таблицы (один) и по ПК - все соответствующие записи из 2-ой (многие). Если не все выбранные записи из 2-ой таблицы существуют в другой БД, то основная запись 1-ой таблицы удаляется.
Вот такая вот заморочка.

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

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


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