2013-10-15 45 views
0

我正在使用combox和datagridview。我试图完成的是(这是家庭作业)显示一个组合框,用户可以选择一个员工ID。当用户选择该ID时,datagrid视图将显示该员工ID的销售情况。ComboBox和Datagridview VB.Net

我想出现各种各样的问题,所以我想重新启动,并通过这个过程。我的表单非常简单。这是我迄今为止所做的,请耐心等待。

首先,我将我的employeeID设置为组合框(从数据源窗格上的数据源)并拖放到我的表单中。我点击并将其设置为使用数据绑定项目,并将其设置为与我的datagrid视图相同的数据源。然后我为我的显示成员选择了EmployeeID。

datagrid视图将加载得很好,并调出每一个订单。 employeeID组合框将加载多个ID,并且存在重复项,因为ID可以与单独的订单关联。如果我选择一个ID,它将隔离与ID关联的订单。这是我卡住的地方。

我没有太多的代码来显示的,因为这是编程方式(拖放),但我可以告诉你什么上前:

Public Class EmployeeOrdersForm 

Private Sub EmployeeOrdersForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    'TODO: This line of code loads data into the 'NORTHWNDDataSet.Employees' table. You can move, or remove it, as needed. 
    Me.EmployeesTableAdapter.Fill(Me.NORTHWNDDataSet.Employees) 
    'TODO: This line of code loads data into the 'NORTHWNDDataSet.Employees' table. You can move, or remove it, as needed. 
    Me.EmployeesTableAdapter.Fill(Me.NORTHWNDDataSet.Employees) 
    'TODO: This line of code loads data into the 'NORTHWNDDataSet.Employees' table. You can move, or remove it, as needed. 
    Me.EmployeesTableAdapter.Fill(Me.NORTHWNDDataSet.Employees) 
    'TODO: This line of code loads data into the 'NORTHWNDDataSet.Order_Details' table. You can move, or remove it, as needed. 
    Me.OrdersTableAdapter.Fill(Me.NORTHWNDDataSet.Orders) 

End Sub 


Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick 

End Sub 


Private Sub EmployeeIDComboBoxToolStripLabel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 

End Sub 

末级

可有人点我在正确的方向?是否可以对组合框进行排序,这样我就可以只显示一次employeeID,然后点击按顺序排序呢?

谢谢

Ĵ

+0

雇员cbo的最终目的是什么?它是否充当过滤器 - 当您从中选择#6时,只显示您的订单?为什么要填充EmployeesTableAdapter 3次?典型地,雇员ID不显示,因为一个人的DB ID是什么,真的不需要关心他们。相反,将ID和名称放入数据源并显示名称。他们选择姓名,但是你的代码实际上使用ID来表示任何事情。 – Plutonix

+0

@Plutonix用户可以从组合框中选择一个employeeID,然后它将进行排序并加载员工所做的销售。 我没有意识到我填充了3次。这个项目让我很头疼。我想我可以删除一些行。 –

+0

当你像这样绑定一个组合框时,你实际上存储了DataRowView对象,YOu可以设置DisplayMember来显示名字,并将ValueMember设置为你的代码使用的ID。此外,您不仅限于使用表格及其列。由于它听起来像statis,所以你可以将First和LastName Adn ID加载到myEmp的List中,将这些放在cbo中,以便Emp.FirstName&“”&Emp.LastName显示,并仍然使用Emp.ID来过滤订单名单。你的问题非常广泛,但这应该给你一些启动。 – Plutonix

回答

0

这个心不是官方的答案,但我能在书中找到通过散步。它仍然有错误,但我想这比没有好。