当前位置:  开发笔记 > 编程语言 > 正文

将行从一个Datatable复制到另一个DataTable?

如何解决《将行从一个Datatable复制到另一个DataTable?》经验,为你挑选了6个好方法。

如何将特定行从DataTable复制到c#中的另一个Datable?会有不止一行.



1> Bradley Smit..:
foreach (DataRow dr in dataTable1.Rows) {
    if (/* some condition */)
        dataTable2.Rows.Add(dr.ItemArray);
}

上面的示例假设dataTable1并且dataTable2具有相同的数量,类型和列顺序.


这不会导致"此行已经属于另一个表".
@DawoodAbbasi只有当你在表达式的末尾遗漏了`ItemArray`部分时才会发生这种情况.确保添加行的值,而不是行本身.
@McArthey不,它不会; 正在从现有行中的值创建新行.该行本身未添加到其他DataTable中.
虽然您的答案在技术上是正确的,但您的代码示例并未解决您的假设.@RageeshGr的答案处理所有假设,恕我直言写得更简洁,不易出错.
@DawoodAbbasi有关`DataTable.Clone`方法的MSDN文档,请参阅MSDN文档:http://msdn.microsoft.com/en-us/library/system.data.datatable.clone.aspx
@DawoodAbbasi正如我在原始答案中所说,"dataTable1和dataTable2具有相同的数量,类型和列顺序".如果您获得该异常,则表格的列数不能相同.

2> 小智..:

将指定的行从表复制到另一个

// here dttablenew is a new Table  and dttableOld is table Which having the data 

dttableNew  = dttableOld.Clone();  

foreach (DataRow drtableOld in dttableOld.Rows)
{
   if (/*put some Condition */)
   {
      dtTableNew.ImportRow(drtableOld);
   }
}



3> 小智..:

试试这个

    String matchString="ID0001"//assuming we have to find rows having key=ID0001
    DataTable dtTarget = new DataTable();
    dtTarget = dtSource.Clone();
    DataRow[] rowsToCopy;
    rowsToCopy = dtSource.Select("key='" + matchString + "'");
    foreach (DataRow temp in rowsToCopy)
    {
        dtTarget.ImportRow(temp);
    }



4> Estevez..:

看看这个,你可能会喜欢它(以前请将table1克隆到table2):

table1.AsEnumerable().Take(recodCount).CopyToDataTable(table2,LoadOption.OverwriteChanges);

要么:

table1.AsEnumerable().Where ( yourcondition  ) .CopyToDataTable(table2,LoadOption.OverwriteChanges);



5> mirtiger..:

受支持:4,3.5 SP1,您现在可以只调用该对象上的方法.

DataTable dataTable2 = dataTable1.Copy()


从技术上讲,这将创建数据表的副本。尽管问题中没有明确说明,但dataTable2可能已经存在,并且其中有其他行我们不想丢失。同样,该问题专门指出“特定行”,而这仅处理所有行。

6> 小智..:

由于其他职位,这是我能得到的最短的时间:

DataTable destTable = sourceTable.Clone();
sourceTable.AsEnumerable().Where(row => /* condition */ ).ToList().ForEach(row => destTable.ImportRow(row));

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有