我有一个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子句。但为什么没有数据?
如果我使用转发器,则该页面为空白。
有什么想法吗?
答案 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>