数据网格中出现重复列
本文关键字:数据网 网格 数据 | 更新日期: 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);
}