我正在VS2013中创建一个Forms项目。我在表单中添加了一个DataGridView,并将表“employees”设置为其数据源(项目的数据源是在SSMS 2008 R2中创建的.mdf文件)。 employees表中的一列是部门ID。
显然我想显示部门表中的部门名称,而不是显示部门ID。
我所看到的只是通过添加新列可以使用同一个表的列。
我研究过使用数据库作为数据源,然后从不同的表中添加列,但这似乎也不是正确的方法。
我该怎么做?是否可以使用对话框/视觉辅助工具,还是只能在代码中完成?
答案 0 :(得分:0)
我建议使用DataGridViewComboBoxColumn
翻译您的部门ID。
看一下这个片段:
Dim cmbCol As DataGridViewComboBoxColumn = New DataGridViewComboBoxColumn() With {
.HeaderText = "Department",
.DataPropertyName = "DepartmentID",
.Name = "Department",
.DisplayMember = "DepartmentName",
.ValueMember = "DepartmentID",
.DataSource = myDepartmentDataTable,
.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing
}
myDGV.Columns.RemoveAt(departmentColumnIndex)
myDGV.Columns.Insert(departmentColumnIndex, cmbCol)
要使其工作,您需要DataTable
一列“DepartmentID”和另一列“DepartmentName”。将显示样式设置为“Nothing”会使列看起来像普通文本列而不是组合框列。最后两行删除了从初始数据中获得的常规文本列,并将其替换为新的组合框列。
您也可以通过DataGridView
的列属性通过手动添加所有列来完成此操作,包括组合框列。