C#数据表映射值

C#数据表映射值,c#,datagridview,datatable,C#,Datagridview,Datatable,步骤1: 结果在dsMaindstaset中得到36个数据表 步骤2: 动态创建36DataGridView以显示所有datatable。 它导致一些DataGridView有表但没有数据。有些栏目不见了。 原因是这些列是自动生成的映射列。它的列名类似于TabelName\u Id 步骤3: DataSet dsMain = new DataSet(); dsMain.ReadXml(my xml path); for(int index=0;indexColumns(Child\u Id、C

步骤1:

结果在
dsMain
dstaset中得到36个数据表

步骤2:

动态创建36
DataGridView
以显示所有datatable。 它导致一些
DataGridView
有表但没有数据。有些栏目不见了。 原因是这些列是自动生成的映射列。它的列名类似于TabelName\u Id

步骤3:

DataSet dsMain = new DataSet();
dsMain.ReadXml(my xml path);
for(int index=0;index
现在该列是可见的。但我的问题是,我无法获得自动生成的父列

例如:

表1:父项->列(父项Id、列1、列2、列3)

表2:Child->Columns(Child\u Id、Col1、Col2、Col3、Parent\u Id)

在执行步骤3之后,我能够在子表中看到子\u Id,但在子表中看不到父\u Id

请帮我摆脱这一切

我的示例xml

for (int index = 0; index < ds1.Tables.Count; index++)
{
    DataTable dtnew = ds1.Tables[index].Copy();

    for (int ColCount = 0; ColCount < dtnew.Columns.Count; ColCount++)
    {
        if (dtnew.Columns[0].ColumnMapping == MappingType.Hidden)
        {
            dtnew.Columns[0].ColumnMapping = MappingType.Element;
        }
    }
}

在for循环中,索引始终为0。你是想用ColCount吗

<Parent value="25">
<Child>
<Inner></Inner>
</Child>
</Parent>
for(int ColCount=0;ColCount
上述更改对您的结果有什么影响?如果您仍然看到父/子问题,我们可以进一步查看

for (int ColCount = 0; ColCount < dtnew.Columns.Count; ColCount++)
{
   if (dtnew.Columns[ColCount].ColumnMapping == MappingType.Hidden)
   {
      dtnew.Columns[ColCount].ColumnMapping = MappingType.Element;
   }
}