0

我试图弄清楚如何根据按钮单击显示访问数据库中的某些数据。例如,如果我单击“库存”按钮,它将显示数据库中缺货的项目。我能够打开连接并显示查询信息,但这是一个很长的 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
4

1 回答 1

0

这里发生了一些不同的事情......

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

Dim con As New OleDbConnection
Dim ReturnedData as Datatable

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

ReturnedData = query1.CopyToDataTable

现在,您可以在每个按钮单击中使用数据。

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

假设您修复了该问题并调用了它,在 query1 中说“OrderDate”,那么您可以做的是使用 ReturnedData 数据表中的 linq 查询填充您的列表视图,如下所示:

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

...我在没有 IDE 的情况下执行此操作,因此拼写可能会关闭,但我希望这能让您知道去哪里...

于 2012-10-17T21:51:53.847 回答