数据网格中出现重复列

本文关键字:数据网 网格 数据 | 更新日期: 2023-09-27 18:28:42

嗨,我正在使用以下代码从数据表中填充表格上的网格

      FormDataSet = woutil.GetDataSet;
      dgComments.DataDource = FormDataSet.Tables["COMMENT"];
      foreach(DataColumn col in FormDataSet.Tables["COMMENT"].Columns)
      {
          dgComments.Add(col.ColumnName, col.ColumnName);
      }

COMMENT表只有4列

在调用代码时,FormDataSet是一个空数据集。当代码运行后,会出现一个表COMMENT,表中有4列。

dgComments DataGridView在调用代码之前没有阻塞或数据源。

这段代码确实在网格中创建了列,但由于列是重复的,所以没有我预期的4列,而是有8列。请有人告诉我我做错了什么,并建议我如何填充网格,以便只显示4列。如果我单步执行代码,Add只调用了4次,所以我不明白为什么要添加8列??

稍后,我将更改代码,以便只将某些列添加到网格中,但在这个阶段,我很乐意显示

数据网格中出现重复列

的所有列

您可能只是忽略了将AutoGenerateColumns设置为false。

如果是这种情况,那么当您在以下行设置DataSource属性时:

dgComments.DataSource = FormDataSet.Tables["COMMENT"];

列是由.Net自动为您生成的。

当您对表进行迭代并根据表中的列添加列时,您正在复制它们。如果你想手动控制列,那么试试这个:

FormDataSet = woutil.GetDataSet;
dgComments.AutoGenerateColumns = false;
dgComments.DataSource = FormDataSet.Tables["COMMENT"];
foreach(DataColumn col in FormDataSet.Tables["COMMENT"].Columns)
{
    dgComments.Add(col.ColumnName, col.ColumnName);
}