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,则可能是问题所在。不幸的是,我无法检查这一点,因为我还没有进入电脑,它是在目前。