2

SQL 選択クエリを入力する DataSet があります。次に、この 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 を使用してページを実行すると、1 つの行と 2 つのフィールド (RowError と HasRows) を持つ GridView があり、行にデータがありません。この例では 1 行が正しい数であるため、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 に答える