【问题标题】:How to add DataGridView column from 2nd table in datasource如何从数据源中的第二个表中添加 DataGridView 列
【发布时间】:2014-10-15 13:04:46
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 如果是mdf可以查询你需要的结果...
  • 基本上你可以翻译你的身份证...情况下1个管理员2个玩具等等。这是一个小例子。然后用您在表中查询的内容返回您的查询并将其设置为数据源...
  • 您也可以在代码中添加另一列到表中,但我不建议这样做,从您的 mdf 文件中查询并返回您需要的内容...
  • @eventide:你的问题得到解答了吗?您没有标记答案,也没有写任何评论您的答案是如何未解决的。

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


【解决方案1】:

我建议使用DataGridViewComboBoxColumn 来翻译您的部门ID。

看看这个sn-p:

    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”。将显示样式设置为“无”使该列看起来像一个普通的文本列,而不是一个组合框列。最后两行删除了您从初始数据中获得的常规文本列,并将其替换为新的组合框列。

您也可以通过 DataGridView 的 columns 属性手动添加所有列,包括您的组合框列。

【讨论】:

    猜你喜欢
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    • 2016-03-12
    相关资源
    最近更新 更多