error将数据表行添加到另一个数据表

时间:2012-12-06 09:17:18

标签: c# asp.net datatable

我有datatable1有11列和100,000行..我想检查第一列中的文本是否以“one”开头,如果是,则将该行添加到第二个数据表中。我已经完成了以下但仍然无法正常工作..我得到该行属于另一个表的错误

foreach (DataRow r in queryDataTable.Rows)
{
     if (r[0].ToString().StartsWith(queryString))
     {
          dt.ImportRow(r);                    
     }
}

2 个答案:

答案 0 :(得分:1)

您可以使用LINQ来选择StartsWith queryString的那些行,而不是for循环,然后您可以使用CopytoDataTable方法为所选行创建新表。

var NewTable = queryDataTable.AsEnumerable()
               .Where(r => r.Field<string>(0).StartsWith(queryString))
               .CopyToDataTable();

请务必在顶部加using System.Linq;

答案 1 :(得分:1)

您无法直接将一个表的行导入另一个数据表。您需要创建一个新行,然后复制该行。

试试这个 -

dt.Rows.Add(r.ItemArray)