Как проверить, находится ли строка в DataTable?

64
7

Я создал DataTable следующим образом

        DataTable dt2 = new DataTable();            
DataColumn dc = new DataColumn();

dc.ColumnName = "Table Allocated";
dt2.Columns.Add(dc);

dc = new DataColumn();
dc.ColumnName = "Capacity";
dt2.Columns.Add(dc);

Добавлено несколько строк для него, позже создала еще одну строку, подобную этой

            DataRow resRow;
resRow = dt2.NewRow();

resRow["Table Allocated"] = "1"
resRow["Capacity"] = "xx";

Как я могу проверить, действительно ли resRow уже присутствует в DataTable dt2 aginist для всех столбцов?

спросил(а) 2021-01-19T20:55:48+03:00 6 месяцев назад
1
Решение
64

вы можете попробовать это

    var results = from myRow in dt2.AsEnumerable()
where myRow.Field<string>("Table Allocated") == resRow["TableAllocated"]
&& myRow.Field<string>("Capacity")==resRow["Capacity"]
select myRow;

если result.count()> 0, то есть строка.

ответил(а) 2021-01-19T20:55:48+03:00 6 месяцев назад
45

Одним из решений может быть использование RowFilter:

var dataView = new DataView(dt2);
dataView.RowFilter = string.Format("TableAllocated='{0}', tableAllocatedValue);

Другое решение - использовать Select

dt.Select(string.Format("TableAllocated='{0}', tableAllocatedValue)); 

ответил(а) 2021-01-19T20:55:48+03:00 6 месяцев назад
46

Вы можете попробовать что-то вроде этого:

var rowPresent = dt2.Select("Table Allocated=" + resRow["TableAllocated"] + " AND Capacity = '" + resRow["Capacity"] + "'");

Теперь вы можете проверить, содержит ли rowPresent любые значения, а -if not- добавить новую строку в DataTable

ответил(а) 2021-01-19T20:55:48+03:00 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема