【问题标题】:error add a datatable row to another datatable将数据表行添加到另一个数据表时出错
【发布时间】:2012-12-06 09:17:17
【问题描述】:

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

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

【问题讨论】:

  • 准确说明您遇到了什么错误以及在哪里?
  • 不知道为什么你不使用 Linq.. 而不是这个 forloop ..

标签: c# asp.net datatable


【解决方案1】:

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

试试这个 -

dt.Rows.Add(r.ItemArray)

【讨论】:

    【解决方案2】:

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

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

    记得在顶部添加using System.Linq;

    【讨论】:

    • 将返回一个包含所有数据的数据表
    • 新表是数据表吗
    • 如果我知道 indesedx,我可以按特定顺序选择特定行吗?
    猜你喜欢
    • 2010-11-22
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    • 2013-07-28
    • 2019-08-21
    • 1970-01-01
    相关资源
    最近更新 更多