gani7787 Ответов: 2

Как найти указанный столбец и его значение строки, если имя столбца в качестве параметра используется LINQ C#


Hi,

I have datatable and column name something like "1000,2000,3000,4000,....10000"

When i pass the parameter as "1000" as column name it should find the column and return the values.

For Example,

My parameter is "1000" (Column name)

var Qry = (from r in tbl1.AsEnumerable()

 where r.Field<double>(1000) == EMPNUM 
 select new
 {

 }).Count();

Finally i want to get the count and same as i need query to get the values for column name 1000

i tried the above query, but getting error in where r.Field<double>(1000) ==> Error

How to write the LINQ Auery in C#


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

var Qry = (from r in tbl1.AsEnumerable()

 where r.Field<double>(1000) == EMPNUM 
 select new
 {

 }).Count();

2 Ответов

Рейтинг:
2

Maciej Los

Если имя столбца: "1000,2000,3000,4000,....10000" и вы хотите передать его в запрос, проверьте это:

var colName = "1000"; 
var cnt = tbl1.AsEnumerable()
    .Select(r=>r.Field<double>(colName)) 
    .Count();


Рейтинг:
1

Richard Deeming

Вы вызываете перегрузку, которая получает доступ к полю индекс, не поле имя.

Если вы хотите прочитать поле с указанным именем, вам нужно передать строку:

where r.Field<double>("1000") == EMPNUM

Если вы хотите подсчитать количество совпадающих строк:
int count = tbl1.AsEnumerable().Count(r => r.Field<double>("1000") == EMPNUM);

Если вы хотите получить соответствующие строки:
IEnumerable<DataRow> rows = tbl1.AsEnumerable().Where(r => r.Field<double>("1000") == EMPNUM);