我有以下两个ms-access表:
员工表:
EmployeeID
Name
等。
项目表:
ProjectID
EmployeeID
ProjectDescription
每个员工可以管理零个或多个项目。
我知道如何使用DataSet
设计器在Form1
上添加Employee表作为详细信息(多个绑定控件)(Windows窗体应用程序):
将Company数据库的Employee表(作为详细信息)拖到表单中创建以下组件:
•CompanyDataSet
•employeeBindingSource
•employeeTableAdapter
•tableAdapterManager
•employeeBindingNavigator
如何添加一个列表框到Form1,显示当前显示的员工管理的所有项目的ProjectDescription ?需要设置哪些ListBox属性?
我相信我将需要以下查询:
SELECT Project.ProjectDescription FROM Project RIGHT JOIN Employee ON Project.EmployeeID = Employee.EmployeeID WHERE EmployeeID = ?
参数将是employeeIDtextbox。文本
项目记录将从Form2以编程方式(OleDbConnection, OleDbCommand)创建。显示Form1时,需要用什么语句更新Form1 ?
我搜索了网页,阅读了一页又一页的微软文档,但还是碰壁了。
如果您正在询问如何将projectdescription放入ListBox中,您可以简单地遍历查询返回的记录集并将每个条目添加到ListBox
foreach (DataRow r in foo)
{
projectlistbox.Items.Add(r["ProjectDescription"]);
}
看起来不太优雅,但是很有效。我不能保证代码完全做到这一点,因为我没有c# IDE来测试它。但它应该为你指明正确的方向。
要在Form2
输入数据后更新Form1
,请在Form1.Activated
中放入代码,检查更新的数据并适当更改Form1
上的对象。