C#把一个datatable中的数据复制到另一张datatable

实际开发中往往需要把一个dataTable中的数据根据条件过滤,然后把新数据赋给另外一张表(即返回过滤后的数据),
比如:有一个datatable dt;另一个datatable dt1;
DataRow dr=dt.select("id=1");
然后
dt1.Rows.Add(dr[0]);
但是这时会提示错误信息:这一行数据已经属于其他表,本节内容就是讲解如何把一个dataTable中的数据赋给新的dataTable
代码如下:
/// <summary>       
/// 执行DataTable中的查询返回新的DataTable        
/// </summary>        
/// <param name="dt">源数据DataTable</param>        
/// <param name="condition">查询条件</param>       
/// <returns></returns>        
public static DataTable GetNewDataTable(DataTable dt, string condition)        
   {          
     DataTable newdt = new DataTable();            
     try            
        {                
           newdt = dt.Clone();                
           DataRow[] dr = dt.Select(condition); // 克隆dt的结构,包括所有dt架构和约束,并无数据       
           for (int i = 0; i < dr.Length; i++)                
             {                    
              newdt.ImportRow((DataRow)dr[i]);                
            }               
          return newdt;//返回的查询结果           
       }            
     catch (Exception ex)           
       {                
           MessageBox.Show(ex.Message);                
           return newdt;            
       }     
  } 


其中 newdt.ImportRow((DataRow)dr[i]); 也可以换成newdt.Rows.Add(dr[i].ItemArray);

转载于:https://www.cnblogs.com/wangjianhui008/p/3543133.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值