我已经在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')之类的东西

但是我的是通过连接两个表的查询动态创建的数据集,它不是存储在项目数据源之间的东西。我也没有通过其属性将datagridview绑定到任何数据源。我想念什么?

(顺便说一句,sql查询是正确的,我已经对其进行了测试并返回了预期的结果)。

最佳答案

您可以通过索引从数据源获取表:

dataGridReport.DataSource = ds.Tables(0)

10-04 21:38
查看更多