C# DataTable ImportRow 问题

C# DataTable ImportRow issue

我有两个 DataTable t1t2t1里面有数据,t2是新建的,空的table:

//fill `t1`
DataTable t2 = new DataTable();
for (int i = 0; i < t1.Rows.Count; i++)
{
    if (t1.Rows[i][6].ToString().ToLower().StartsWith("xyz"))
    {
        t2.ImportRow(t1.Rows[i]);
    }
}

虽然在导入循环后我在 t2 中有 0 列,但上述内容理论上应该有效。

t1 rows 13312 cols 25
t2 rows  3861 cols  0

我应该有相同的 25 列,对吗?

这可能是因为在您的 for 循环之前,t2 只是一个新创建的 DataTable 对象,没有任何行或列。在 for 循环中,您正在导入行而不是获取任何列。

您可以尝试在此声明后立即在 t2 上添加列名称:

DataTable t2 = new DataTable();

可以使用此添加列:

t2.Columns.Add("colName", typeof(Double));

此外,确保列名与 t1 中的列名相同,数据类型也相同。

不确定这是否可行,但您可以试一试。