如何从数据源中的第二个表添加DataGridView列

时间:2014-10-15 13:04:47

标签: vb.net datagridview visual-studio-2013 datasource

我正在VS2013中创建一个Forms项目。我在表单中添加了一个DataGridView,并将表“employees”设置为其数据源(项目的数据源是在SSMS 2008 R2中创建的.mdf文件)。 employees表中的一列是部门ID。

显然我想显示部门表中的部门名称,而不是显示部门ID。

我所看到的只是通过添加新列可以使用同一个表的列。

我研究过使用数据库作为数据源,然后从不同的表中添加列,但这似乎也不是正确的方法。

我该怎么做?是否可以使用对话框/视觉辅助工具,还是只能在代码中完成?

1 个答案:

答案 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的列属性通过手动添加所有列来完成此操作,包括组合框列。