【问题标题】:query dataset using LINQ [duplicate]使用 LINQ 查询数据集
【发布时间】:2012-01-18 04:48:33
【问题描述】:

可能重复:
Not displaying data in gridview when applying filter to a dataset

我有一个 Dataset dsemp 的内容与 enamepass状态 作为属性。

我想查询 Dataset 使用 LINQ 以便它返回 status"out" 的记录

当我使用 dataset 时,它在 datatable 上使用时有效,数据不显示

请告诉我如何实现这一点。在此先感谢

【问题讨论】:

    标签: asp.net .net linq linq-to-dataset


    【解决方案1】:

    简单地使用它并将结果转换为list:
    首先添加对System.Data.Extensions.dll的引用(实现了LINQ over 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

    【讨论】:

    • 使用上述查询时未显示数据
    • 你能分享你的代码来理解这个问题吗?如果你以正确的方式做所有事情,这应该可以工作。
    • 检查您的 gridview 标记是否有问题。如果您的代码在 asp.net 页面生命周期的特定事件中编写正确..
    • 嗨 Niranjan 我只想使用数据集。请查看我添加的代码并建议我如何直接使用 r.status 或 r.empname 等属性。谢谢
    • 尝试将.ToList() 添加到datasouce.. 并且在此检查结果之前IEnumerableList 是否包含值??
    【解决方案2】:
       var query = from e in DS1.emp
    
                where e.status == "out"
    
    
                select e;
    
    
    
    dataGridView1.DataSource = query.AsDataView();
    

    【讨论】:

    • 它会给出编译错误“DS1.emp”,你不能使用Dataset作为Datacontext。相反 AsEnumerable() 方法将在这里工作。
    【解决方案3】:
    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();
    

    【讨论】:

      猜你喜欢
      • 2010-10-10
      • 2014-03-14
      • 2013-06-15
      • 2011-09-29
      • 2010-12-29
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多