DataTable importRow()进入空表

时间:2012-06-01 19:52:22

标签: c# .net 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);
    }
  }
}

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

1 个答案:

答案 0 :(得分: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);
        }
    }
}