在列表框中显示数据库信息

时间:2012-10-17 21:10:33

标签: database vb.net linq

我试图弄清楚如何根据按钮点击从访问数据库中显示某些数据。例如,如果我单击“库存”按钮,则会显示项目缺货的数据库中的项目。我能够打开连接并显示查询信息,但它是一个很长的LINQ查询,我不知道它来自哪里。有关如何显示数据库信息的任何建议?即客户信息,库存物品等......

Option Strict On

Imports System.Data.OleDb

Public Class frmMicroland

Dim con As New OleDbConnection

Private Sub btnStockItems_Click(sender As System.Object, e As System.EventArgs) Handles btnStockItems.Click

    Dim query1 = From anyOrder In MICROLANDDataSet.Orders
                Join itsStockItem In MICROLANDDataSet.Inventory
                On anyOrder.itemID Equals itsStockItem.itemID
                Let orderQuantity = anyOrder.quantity
                Select itsStockItem.quantity, itsStockItem.description, anyOrder.itemID
                Order By quantity, itemID


    ''Test connection to make sure it opens first
    Try
        con = New OleDb.OleDbConnection("provider= microsoft.ace.oledb.12.0;Data Source = C:\Users\HPG62-220US\Documents\Visual Studio 2010\Projects\Asignment 9\Asignment 9\bin\Debug\MICROLAND.accdb; Persist Security Info=False;")
        Try
            Call con.Open()
        Catch ex As Exception
            MessageBox.Show("Could not connect")
        End Try

        If con.State = ConnectionState.Open Then
            MessageBox.Show("Connection is open")
        End If
    Catch ex As Exception
    End Try

    lstOutput.Items.Add("Here are the items that are out of")
    lstOutput.Items.Add("inventory or must be reordered.")
    lstOutput.Items.Add("")
    lstOutput.Items.Add("The numbers shown give the")
    lstOutput.Items.Add("minimum reorder quantity required.")
    lstOutput.Items.Add("")
    lstOutput.Items.Add(query1)
    con.Close()
End Sub

Private Sub btnTodaysOrders_Click(sender As System.Object, e As System.EventArgs) Handles btnTodaysOrders.Click

End Sub
End Class

1 个答案:

答案 0 :(得分:0)

这里有一些不同的事情......

首先,您需要在btnStockItems_Click过程之外声明一个可以存储返回数据集的变量。有点像:

Dim con As New OleDbConnection
Dim ReturnedData as Datatable

然后在您的btnStockItems_Click过程中,您需要填充该数据表:

ReturnedData = query1.CopyToDataTable

现在您可以在每次按钮点击中使用数据。

我看到的下一个问题是,您似乎没有输入正确的数据...... 例如,您从未在查询1中提取订单日期,但您希望知道今天的订单。

假设你修复了它并且它被调用了,在query1中说“OrderDate”,你可以做的就是用你的ReturnedData数据表中的linq查询填充你的listview:

From rw in ReturnedData where OrderDate = xxx select rw.item("itemID").tostring

...我在没有IDE的情况下这样做,所以拼写可能会关闭,但我希望这可以让你知道去哪里......