0

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

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

2 回答 2

1

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

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

记得using System.Linq;在顶部包含。

于 2012-12-06T09:24:20.227 回答
1

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

尝试这个 -

dt.Rows.Add(r.ItemArray)
于 2012-12-06T09:24:38.087 回答