![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
Иван Человеков |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 11.3.2006 Где: Минск Репутация: нет Всего: 1 |
Добрый день!
Подскажите пожалуйста как удалить в DataTable одинаковые записи проще чем я это сделал?
Удаляю во втором цикле. Если вместо удаления во втором цикле, писать сразу:
Получаю : Deleted row information cannot be accessed through the row. тоесть - К удаленной информации ряда нельзя получить доступ через ряд. Если применяю
Как можно упростить код? Как верно работать в DataTable со строками при удалении? Спасибо. |
||||||
|
|||||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: нет Всего: 36 |
попробуй так - сначала создаётся список дубликатов (группируются по колонке "департамент", выбираются списки длиной более 1 элемента, из них все, кроме первого, попадают в результирующий список), потом каждый из них удаляется
а так у тебя в обоих вариантах присутствует ошибка удаления элемента из коллекции, когда по ней происходит пробежка для повышения производительности (если её вдруг окажется недостаточно), можешь поступать схожим образом, но в цикле вместо выставлени пометки о дубликатности добавляй сам дубликат во временный список, удаляя уже строки пробежкой по нему тут есть ещё и, наверное, едиственное действительно верное решение - не допускать появление дубликатов в ключевом поле. решается как средствами Sql (в большинстве случаев может хватить), так и программно (дополнительно к Sql!) свойствами классов ADO.Net (PrimaryKey, Unique) Это сообщение отредактировал(а) mihryak - 21.8.2009, 16:53 |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |