DataTable importRow()进入空表

Kev*_*hou 2 .net c# datatable

我一直在尝试将带有多张工作表的excel文档合并到Datatable中,以便我可以在winform应用程序中显示所述工作表.

从阅读中,我认为Datatable.import(DataRow行)是我最好的选择.因此我的代码如下:

DataTable returnSet = new DataTable();
foreach (DataTable datTab in ds.Tables) // ds is extracted excel sheets in a dataset
{
  foreach (DataRow datRow in datTab.Rows) 
  {
    if (datRow.IsNull(0)) //if empty first col go on to next sheet
    {
      break;
    }
    else
    {
      returnSet.ImportRow(datRow);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

在调试时,它显示datRow/datTab是我所期望的,但是在每个ImportRow之后,returnSet仍然是一个空的1x1单元格.任何关于我做错了什么/缺失的见解都将非常感激.

Tim*_*ter 12

我假设原因是因为您的DataTable当前没有架构.您可以尝试克隆原始DataTable以创建相同的模式(DataColumns等).

foreach (DataTable datTab in ds.Tables) // ds is extracted excel sheets in a dataset
{
    DataTable tblClone = datTab.Clone();
    foreach (DataRow datRow in datTab.Rows) 
    {

        if (datRow.IsNull(0)) //if empty first col go on to next sheet
        {
            break;
        }
        else
        {
            tblClone.ImportRow(datRow);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)