получение данных из таблицы данных при некотором условии

#.net #asp.net #linq

#.net #asp.net #linq

Вопрос:

Q:

У меня есть DataTable , я хочу получить данные в соответствии с некоторым условием. ( Where() )

 MyTable.Select().Where()
  

Как это сделать, если условие (тип = 0).

Ответ №1:

Вы можете использовать LINQ:

 IEnumerable<DataRow> rows = MyTable.AsEnumerable()
                                   .Where(row => row.Field<int>("type") == 0);
  

Комментарии:

1. тогда, если я хочу получить определенное значение поля в этой строке, как его получить?

2. Вы можете взять одну из строк (например, rows.First() ) и записать row.Field<SomeType>("FieldName")

3. IEnumerable<DataRow> rows = TableList.AsEnumerable().Where(row => row.Field<int>("StudentCode") == int.Parse(e.Row.Cells[0].Text));

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

5. Это означает, что ваше поле не является int .

Ответ №2:

Это должно быть то, что вы ищете:

 var query = from r in dataset.Tables[0].AsEnumerable()
where r.Field<int>("Type") == 0
select new
{
     r.Field<string>(“Column1”), 
     r.Field<string>(“Column2”),
     r.Field<string>("ColunmEtc")
}