c# - DataTable importRow() 到空表

标签 c# .net datatable

我一直在尝试将一个包含许多工作表的 excel 文档合并到一个数据表中,以便我可以在我的 winform 应用程序中显示所述工作表。

通过阅读,我认为 Datatable.import(DataRow row) 是我最好的选择。因此我的代码如下所示:

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 单元格。任何关于我做错/遗漏的见解都将不胜感激。

最佳答案

我认为原因是因为您的 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);
        }
    }
}

关于c# - DataTable importRow() 到空表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10856532/

相关文章:

c# - 将二进制文件读入结构

c# - long 类型的依赖属性错误

javascript - 如何在jtree搜索过滤器jquery中播种结果多词组合匹配(jtree中的多词和条件)

c# - 为什么 win32 上没有 c# native 编译器项目?

c# - 如何在c#中读取具有通配符格式的所有文件

c# - C# 中的 Observable 和 Observer(java.util 包)等效项

c# - 如何在 C# 中让系统服务在 (Services.msc) 下运行

c# - 如何在一个或多个 for 循环中使用现有变量?

c# - 将数据表作为类型传递给存储过程不能插入空值

c# - 林克 : select value in a datatable column