【问题标题】:Why will my Datagridview not display information from the DataTable to which I bound it?为什么我的 Datagridview 不会显示我绑定到的 DataTable 中的信息?
【发布时间】:2014-09-27 20:49:37
【问题描述】:

我创建了一个带有 datagridview 的表单。我将该 DGV 绑定到从 SqlServer CE 数据库中的表构造的数据表。我能够添加、编辑和删除记录并将更改保存到数据库。

然后,我将 AutoGenerateColumns 设置为 False,这样我就可以设置具有良好格式的 DGV。首先,我只添加了一列:

'/// Set Up DataGridView
    With dgvMaterials
        .AutoGenerateColumns = False
        '.Columns.Add("MaterialName", "Material")

    End With
    Dim col As DataGridViewColumn
    '
    col = New DataGridViewColumn
    With col
        .Name = "Material"
        .DataPropertyName = "MaterialName"
        .Width = 200

        '.HeaderText = "Material"
    End With
    dgvMaterials.Columns.Add(col)
    dgvMaterials.DataSource = stuff.Materials

(Stuff 是我执行 SQL 操作的类的实例,Materials 是 DataTable 的名称)

现在我必须检查 DataPropertyName 一百次,并确认 DataTable 中有记录,但它们不会显示在 DGV 中。为什么?

一如既往地提前感谢您提供的任何帮助。

【问题讨论】:

  • 您能从stuff.Materials 中选择一项,类似于dgvMaterials.DataSource = stuff.Materials.Select(Function(m) m.MaterialName).ToList() 吗?
  • 它是否适用于 AutoGenerateColumns = True 而不是自己构建列?您可能需要先设置所有列,然后才能仅使用一列绑定到它。
  • 是的,它确实可以这样工作 - 但不是 1 列。

标签: sql-server vb.net datagridview datatable


【解决方案1】:

伙计们,答案很简单:我将列放入 DataGridViewColumn 类型中,无论出于何种原因,它必须是 DataGridViewTextBoxColumn 才能工作。我把它关掉了,现在 datagridview 像冠军一样工作。

【讨论】:

    猜你喜欢
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    相关资源
    最近更新 更多