2

我有一个用 SQL 选择查询填充的数据集。然后,我需要使用 LINQ to DataSet 对此 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 子句似乎被正确评估。但为什么没有数据?

如果我改用中继器,则页面为空白。

有任何想法吗?

4

1 回答 1

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>

于 2010-10-15T13:52:34.383 回答