Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据网格中出现重复列_C#_Mysql_Datagridview - Fatal编程技术网

C# 数据网格中出现重复列

C# 数据网格中出现重复列,c#,mysql,datagridview,C#,Mysql,Datagridview,您好,我正在使用以下代码从数据表填充表单上的网格 FormDataSet = woutil.GetDataSet; dgComments.DataDource = FormDataSet.Tables["COMMENT"]; foreach(DataColumn col in FormDataSet.Tables["COMMENT"].Columns) { dgComments.Add(col.ColumnName, col.C

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

      FormDataSet = woutil.GetDataSet;
      dgComments.DataDource = FormDataSet.Tables["COMMENT"];
      foreach(DataColumn col in FormDataSet.Tables["COMMENT"].Columns)
      {
          dgComments.Add(col.ColumnName, col.ColumnName);
      }
表注释只有4列

FormDataSet在调用代码时是一个空数据集。当代码运行时,表中有一个带有4列的表注释

dgComments DataGridView在调用代码之前没有克隆或数据源

这段代码确实在网格中创建了列,但是由于列是重复的,所以我希望有8列,而不是4列。请有人告诉我我做错了什么,并建议我如何填充网格,以便只显示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);
}

您是否更改为默认值?是否尝试删除foreach循环?嗨,Steve,感谢您的快速响应。老实说,我只是从工具箱中拖动了网格,并且没有更改任何属性。因此,如果AutoGenerateColumns默认设置为true,则可能是问题所在。不幸的是,我无法检查这一点,因为我还没有进入电脑,它是在目前。