2012-01-18 2 views
1

Возможные Дублировать:
Not displaying data in gridview when applying filter to a datasetзапрос набора данных с помощью LINQ

Я имею набора данных дц с содержимым таблицы EMP с ENAME, проход, статус как атрибуты.

Я хочу запросить Dataset uing LINQ таким образом, что он возвращает записи, в которых статус является "из"

он работал при использовании на DataTable когда это i использовать набор данных данные не отображаются

Скажите, пожалуйста, как я могу достичь this.Thanks в Advance

ответ

0
var query = from e in DS1.emp 

      where e.status == "out" 


      select e; 



dataGridView1.DataSource = query.AsDataView(); 
+0

Это даст ошибку компиляции «DS1.emp», вы не можете использовать Dataset в качестве Datacontext. Вместо этого будет работать метод AsEnumerable(). –

2

Простое использование этого и преобразовать результат в list:
Первый добавить ссылку на System.Data.Extensions.dll (где LINQ над DataSet реализована поддержка)

// Fill the DataSet. 
DataSet ds = new DataSet(); 
ds.Locale = CultureInfo.InvariantCulture; 
FillDataSet(ds); 

DataTable orders = ds.Tables["SalesOrderHeader"]; 

var query = 
    from order in orders.AsEnumerable() 
    where order.Field<string>("status") == "out" 
    select order; 

yourGridView.DataSource= query.ToList(); 
yourGridView.DataBind(); 

Вы можете проверить это также:
Binding LINQ query to DataGridView

+0

данные не отображаются при использовании вышеуказанного запроса – Vinod

+0

вы можете поделиться своим кодом, чтобы понять проблему .. это должно работать, если вы делаете все правильно. –

+0

проверьте свою разметку gridview для проблемы. если ваш код позади написан правильно в случайном событии жизненного цикла страницы asp.net. –

0
OleDbDataAdapter da = new OleDbDataAdapter("select empname,pass,status from employees", conn); 
     DataSet ds1=new DataSet(); 
     da.Fill(ds1,"emp"); 
      var datasource = from r in ds1.Tables["emp"].AsEnumerable() 
          where r.Field<string>("status")=="out" 
          select new{empname=r.Field<String>("empname"),status=r.Field<string>("status")}; 
      GridView1.DataSource = datasource; 
      GridView1.DataBind(); 
Смежные вопросы