Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Монфрид
1212 / 1022 / 293
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
1

Удалить из DataTable найденную строку

25.03.2012, 12:46. Просмотров 2812. Ответов 0
Метки нет (Все метки)

В dataTable залита таблица, примерная структура такая: |Код| |Модель| |Производитель| |Цена|.
Эта таблица залита в listView, при выделении позиции в листвью и нажатии на кнопку необходимо удалить выбранную позицию из DataTable.

Пробовал делать такое:
1
C#
1
2
foreach(DataRow r in datatbl.Select("Модель=["+listview1.selectedItems[0].SubItems[1].Text+"]"))
datatbl.Rows.Remove(r);
вылетает ошибка: Cannot find column [PowerMan YU500]. "PowerMan YU500" это название модели выделенной в listView. Если убираю кв. скобки, т.е:
C#
1
2
foreach(DataRow r in datatbl.Select("Модель="+listview1.selectedItems[0].SubItems[1].Text))
datatbl.Rows.Remove(r);
то вылетает: Syntax error: Missing operand after 'YU500' operator.

Подумал, решил сделать через linq:
2
C#
1
2
3
4
IEnumerable<DataRow> result = from curr in currdev.AsEnumerable()
                                          where curr.Field<string>(1) == listView1.SelectedItems[0].SubItems[1].Text
                                          select curr;
            currdev.Rows.Remove(result);//не проходит, нужен System.Data.DataRow
как мне исправить первый вариант. Либо Ienumerable этот как то переделать в тип понимаемый ..Rows.Remove()??

Почему ищу по полю Модель, а не Код, лучше не спрашивайте

Добавлено через 48 минут
вроде проблему без linq'a решил:
C#
1
2
foreach (DataRow r in currdev.Select("Модель='"+listView1.SelectedItems[0].SubItems[1].Text+"'"))
                currdev.Rows.Remove(r);
кавычки в общем нужны были.

Если есть спецы по linq'y был бы рад если мне показали как сделать второй вариант этой задачки..
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2012, 12:46
Ответы с готовыми решениями:

Удалить ноду xml, найденную по аттрибуту
Здравствуйте! У меня есть xml файл с данными схем. Номер схемы я определяю по полю &quot;id&quot; в аттрибуте...

Как удалить запись из DataTable?
Как удалить запись из DataTable. Как её тупо удалить. DataRow.Delete(); DataAdapter.Update()...

Как добавить в Datatable строку,инструментами VisualStudio
Как в коде это прописать,информации много,а как в конструкторе сделать я не нашёл.Там только...

Как добавить, обновить и удалить несколько строк в DataTable?
Как можно сделать добавление не одной строки в DataTable, а сразу нескольких, если конечно такое...

Как вытащить enum из отдельного класса в строку DataTable
Доброго времени суток. Подскажите, для особо одарённых, как вытащить enum из отдельного класса в...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2012, 12:46

DataTable: добавить строку, удалить строку
Есть DataTable В него успешно добавляю строку: DataTABLE.Rows.Add(Переменная) Как удалить...

Найти строку, содержащую минимальный элемент матрицы. Найденную строку поменять местами с 4-ой строкой
Дана матрица А(5,3) 1. Найти строку, содержащую минимальный элемент матрицы 2. Найденную...

Немогу в combobox занести найденную строку
Доброго времени суток, уважаемые форумчане и модераторы! Это снова я =) надеюсь я вам ещё не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru