使用LINQ查询DataSet

时间:2010-10-15 13:49:18

标签: linq-to-dataset

我有一个DataSet,我用SQL select查询填充。然后,我需要对此DataSet执行额外的查询,以使用LINQ to DataSet对数据进行更多过滤。然后我想把这个LINQ结果挂钩到一些数据控件(Repeater或GridView)但它工作得不好。

这是我到目前为止所尝试的内容:

Dim sql As String = "SELECT * from someTable"
Dim ds As New System.Data.DataSet()
ds = db_functions.DB_GetDS(sql) 'Helper function that returns a dataset, not important

Dim res = (From s In ds.Tables(0) Where s.Field(Of Date)("date") > Date.Today Select s).ToList

GridView1.DataSource = res
GridView1.DataBind()

当我使用GridView运行页面时,有一个GridView,其中包含一行和两个字段 - RowError和HasRows,并且行中没有数据。在此示例中,一行将是正确的数字,因此似乎正确评估了where子句。但为什么没有数据?

如果我使用转发器,则该页面为空白。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

<强> - 编辑 -

我不确定Vb语法和所有内容,但似乎您的问题是您没有针对好元素运行LINQ查询... 我会替换

Dim res = (From s In ds.Tables(0) Where s.Field(Of Date)("date") > Date.Today Select s).ToList

Dim res = (From r In ds.Tables(0).Rows Where r("date") > Date.Today Select r)

然后您的数据源实际上是IEnumerable<DataRow>