C#DataTable ImportRow问题

时间:2015-05-13 12:50:56

标签: c# .net datatable

我有两个DataTable s t1t2t1中包含数据,t2是新创建的空表:

//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]);
    }
}

上述理论上应该可行,但导入循环后0中有t2列。

t1 rows 13312 cols 25
t2 rows  3861 cols  0

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

1 个答案:

答案 0 :(得分:2)

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

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

DataTable t2 = new DataTable();

可以使用以下方法添加列:

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

另外,请确保列名与t1中的列名相同,数据类型也一样。

不确定这是否有效,但你可以尝试一下。