我有两个DataTable
s t1
和t2
。 t1
中包含数据,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列,对吧?
答案 0 :(得分:2)
这可能是因为在for
循环之前,t2
只是一个新创建的DataTable
对象,没有任何行或列。在for循环中,您要导入行而不是获取任何列。
您可以尝试在此声明后立即在t2
添加列名:
DataTable t2 = new DataTable();
可以使用以下方法添加列:
t2.Columns.Add("colName", typeof(Double));
另外,请确保列名与t1
中的列名相同,数据类型也一样。
不确定这是否有效,但你可以尝试一下。