使用数据集以编程方式在VB.NET中加载datagridview

时间:2012-11-24 18:54:13

标签: vb.net datagridview dataset populate

我已经在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查询是正确的,我已经测试过并返回了预期的结果)。

3 个答案:

答案 0 :(得分:12)

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

dataGridReport.DataSource = ds.Tables(0)

答案 1 :(得分: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)

答案 2 :(得分:-1)

dataGridReport.DataSource = ds.Tables("Tablename")