【问题标题】:DataGridView not showing all columns in data setDataGridView 未显示数据集中的所有列
【发布时间】:2014-10-28 13:42:56
【问题描述】:

我有一个显示数据集内容的简单数据集查看器应用程序。我的数据集有很多数据表,每个数据表都有很多行。不幸的是,其中一个表只显示第一列。当我在调试器中查看数据表时,我看到所有行,当它显示在 datagridview 中时,只有一行。列名似乎没有什么奇怪的地方。

这是设置数据网格视图的代码:

    ' Load datagrid
    With DataGridViewXml
        .AutoGenerateColumns = True
        .DataSource = ssrsReportDataSet
        .DataMember = ssrsReportDataSet.Tables(0).TableName
    End With

' 索引 4 处的表是丢失列的表 tableSelecter.SelectedIndex = 4

以下是我使用所需表格更新视图的方法:

' Load datagrid
With DataGridViewXml

    .DataMember = ssrsReportDataSet.Tables("MyTable").TableName
End With

【问题讨论】:

    标签: vb.net datagridview dataset


    【解决方案1】:

    根本不用DataMember,为什么不这样做:

    DataGridViewXml.DataSource = ssrsReportDataSet.Tables(0)
    

    然后是这个:

    DataGridViewXml.DataSource = ssrsReportDataSet.Tables("MyTable")
    

    设置AutoGenerateColumns 没有意义,因为默认情况下它是True。您可能需要也可能不需要将DataSource 设置为NothingClear 之间的Columns 集合。

    【讨论】:

    • 我删除了 DataMember 设置。我想他们会用非常大的数据集节省一些时间,但在这里似乎没有什么不同。我现在清除数据源和列。不过,这张桌子仍然没有得到所有的列。在调试器中看到它并且没有在 datagridview 中正确加载它有点令人沮丧。它似乎与表和列的长度或名称无关。
    • 我的一位同事刚刚提到,如果列有一些空值,自动生成列可能不起作用。所以我可以手动生成它们或用单个空格替换空值。两者都不是很好的选择。我会继续挖掘,谢谢。
    • 这看起来很奇怪。我不会想到列中的数据会对它们是否添加到网格产生任何影响。添加到网格的内容基于DataTable'sDefaultView 生成的PropertyDescriptors
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    相关资源
    最近更新 更多