Vinodh Muthusamy Ответов: 1

Datatable с несколькими столбцами выбора


Iam доступ к datable с несколькими столбцами с помощью метода select. Но я возвращаю значение как
{System.Data.DataRow[0]}

DataRow[] row = datatablename.Select("KEY = '"+ SKEY + "' AND COLUMN_NAME = '"+ item[0].tostring() + "'");

мне нужно значение в datarow[] и цикл через него.

В чем проблема с этим кодом?

Что я уже пробовал:

DataRow[] row = datatablename.Select("KEY = '"+ SKEY + "' AND COLUMN_NAME = '"+ item[0].tostring() + "'");

Bryian Tan

Вы проверили, есть ли skey и item[0] в datatable?

1 Ответов

Рейтинг:
9

#realJSOP

Первый, tostring() должно быть ToString() Во-вторых, вы должны использовать лямбда-выражение. Следующий код должен работать (возможно, потребуется некоторое массирование) до тех пор, пока вы предварительно не убедитесь, что KEY и COLUMN_NAME столбцы существуют в наборе данных.

var rows = datatable.Rows.Where(x => x.GetInt32("KEY") == SKEY && 
                                     x.GetString("COLUMN_NAME") == item[0].ToString());


В конечном итоге вы получите IEnumerable коллекция из DataRow элементы, соответствующие указанным критериям, или нулевой результат, если совпадения не были найдены.

Лично мне не нравится работать непосредственно с таблицами данных, и вместо этого я предпочитаю перемещать содержимое таблицы данных в список строго типизированных объектов, потому что таким образом все гораздо более управляемо. Но это всего лишь я.

Наконец, старайтесь избегать использования зарезервированных слов SQL (таких как KEY) для имен столбцов. На самом деле это ничего не повредит, но это плохая практика.