3

VB 2010のDesignerビューでdatagridviewを作成しましたdataGridReport。次に、クエリを使用してデータセットに入力し、このデータセットにdatagridviewを入力したいのですが、機能しないようです。

これは私のコードです:

Dim con As New OleDb.OleDbConnection
con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;
                         Data Source=C:\Users\Administrator\Documents\MenuDB.accdb"
con.Open()
Dim ds As DataSet = New DataSet
Dim adapter As New OleDb.OleDbDataAdapter
Dim sql As String

sql = @"SELECT OrderDate, MenuItem 
        FROM   MenuItems, Orders 
        WHERE  Orders.itemID = MenuItems.ID 
           AND Format(Orders.OrderDate,'mm/dd/yyyy') >= #" + fromDate + "# 
           AND Format(Orders.OrderDate,'mm/dd/yyyy') <= #" + toDate + "#"

adapter.SelectCommand = New OleDb.OleDbCommand(sql, con)
adapter.Fill(ds)
dataGridReport.DataSource = ds

私は今何かが欠けていることを知っています-私は周りを見回しました、そしてほとんどの人は次のようなものを使っているようですdataGridReport.DataSource = ds.Tables('somereference')

しかし、私のものは2つのテーブルを結合するクエリから動的に作成されたデータセットであり、プロジェクトのデータソース間で保存されるものではありません。また、データグリッドビューをそのプロパティを介してデータソースにバインドしていません。私は何が欠けていますか?

(ちなみに、SQLクエリは正しいです。私はそれをテストし、期待される結果を返しました)。

4

3 に答える 3

12

インデックスを介してデータソースからテーブルを取得できます。

dataGridReport.DataSource = ds.Tables(0)
于 2012-11-24T19:00:15.773 に答える
1
dataGridReport.DataSource = ds.Tables("Tablename")
于 2017-06-20T14:12:23.753 に答える
0
Dim con As New OleDb.OleDbConnection
con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;
DataSource=C:\Users\Administrator\Documents\MenuDB.accdb"
con.Open()
Dim ds As DataSet = New DataSet
Dim adapter As New OleDb.OleDbDataAdapter
Dim sql As String

sql = @"SELECT OrderDate, MenuItem 
      FROM   MenuItems, Orders 
      WHERE  Orders.itemID = MenuItems.ID 
      AND Format(Orders.OrderDate,'mm/dd/yyyy') >= #" + fromDate + "# 
      AND Format(Orders.OrderDate,'mm/dd/yyyy') <= #" + toDate + "#"

adapter.SelectCommand = New OleDb.OleDbCommand(sql, con)
adapter.Fill(ds,sql)
dataGridReport.DataSource = ds.tables(sql)
于 2018-05-16T23:08:14.127 に答える