出现在数据网格中的重复列

时间:2014-10-30 20:47:10

标签: c# mysql datagridview

您好我正在使用以下代码

在数据表中填充表单上的网格
      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在调用代码时是一个空数据集。当代码运行时,表中有一个包含4列的表COMMENT。

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

此代码确实在网格中创建了列,但是我希望有4列,而不是4列,因为列是重复的。请有人让我知道我做错了什么,并告诉我如何填充网格,以便只显示4列。如果我执行代码,Add只调用4次,所以我看不出为什么有8列添加?

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

1 个答案:

答案 0 :(得分:0)

您可能只是忽略了将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);
}