| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Базы данных под .NET > Как избежать ошибки? |
| Автор: vlsaf 26.11.2007, 13:31 | ||
На вот этой строке
выскакивает ошибка Collection was modified; enumeration operation might not exetute Я добавил запись в таблицу и теперь хочу пройтись по всем строкам, и посмотреть в какой строке row.RowState == DataRowState.Added а у меня exeption ! Как быть? |
| Автор: thomas 26.11.2007, 13:43 | ||
| vlsaf, привет. А там не надо указывать Rows?
По поводу исключения, у меня выскакивало примерно такое же, когда я выполнял обновление в отдельном потоке. Но ты вроде без потоков работаешь. И еще Проверь когда вызывается this.aWIASDataSet.AcceptChanges(). |
| Автор: vlsaf 26.11.2007, 13:48 | ||
| Я записываю мою таблицу построчно. Сейчас я не работаю с целым Dataset И поэтому this.aWIASDataSet.AcceptChanges() мне не нужен. Одну строку записываю вот таким макаром
а на следующей вылезает exeption ps с Rows та же фигня. А что? Правельнее с Rows работать? Почему? |
| Автор: thomas 26.11.2007, 13:55 | ||
| vlsaf, Если я правильно понял, то это выглядит так?
Типа обновил одну строку и выкинул исключение. Да? Поставь точку останова и посмотри что стало с содержимым KundenText. Здается мне, что кол-во строк в таблице стало равным нулю. |
| Автор: vlsaf 26.11.2007, 13:59 |
| Извиняюсь за поднятую волну. Перетрудился Я неправильно оформил блок Filally при обработки ошибки. thomas, У меня все же вышло ловить ошибки хранимок. Построчное сохранение катит!!! |
| Автор: thomas 26.11.2007, 14:26 |
| vlsaf, С успехом тебя. Помечай вопрос как решённый. |
| Автор: vlsaf 26.11.2007, 15:31 | ||
| Все же ошибка выскакивает Если row.RowState == DataRowState.Added ошибки нет если row.RowState == DataRowState.Modified ошибки нет а вот если row.RowState == DataRowState.Deleted происходит вышеописанная ошибка видать по циклу пройтись дальше не может а код такой
|
| Автор: Experimenter 27.11.2007, 10:07 | ||
vlsaf, распространенная ошибка, в foreach такое не прокатывает. Да и for использовать аккуратно надо
Добавлено через 42 секунды Для удаления в цикл надо заходить с хвоста |
| Автор: vlsaf 27.11.2007, 10:55 | ||||
| Experimenter, откуда ты все знаешь? Может еще один вопрос подскажешь. У строки состояние такое (aWIASDataSet.KundenText.Rows[i].RowState == DataRowState.Deleted) Если я отлавливаю exeption при удалении строки
то как мне показать юзеру на какой строке это дело сработало? row уже обнулено, и я не могу достать до нужного мне поля. А так хочется!!! Хотелось бы иметь что-то типа этого
Но как? |
| Автор: thomas 27.11.2007, 14:05 |
| Experimenter, Ценное замечание. Примем к сведению. Держи +1 в репу. |
| Автор: vlsaf 27.11.2007, 14:13 |
| Вопрос решен. >то как мне показать юзеру на какой строке это дело сработало? >row уже обнулено, и я не могу достать до нужного мне поля. А так хочется!!! См топик http://forum.vingrad.ru/forum/topic-184056.html |