var query = from rows in _currentGroup.AsEnumerable() where rows.Field<string>(Globalconf.COL_STATU) == "0" select rows;//Linq 从一张临时表查出我想要的数据行
 DataTableExtensions.CopyToDataTable<DataRow>(query, _dtCampaignGroup, LoadOption.OverwriteChanges);
//将Linq查出的行重新copy到总表中去,(两张表结构一样),发现总表原有的这行信息并未改变,而是在总表里又新增了一行linq查出的数据,怎么实现覆盖这行数据而不是每次都新增?copy进去的为什么不是覆盖还是新增呢?

解决方案 »

  1.   

    var query = from rows in _currentGroup.AsEnumerable() where rows.Field<string>(Globalconf.COL_STATU) == "0" select rows;//Linq 从一张临时表查出我想要的数据行
     DataTable  Temp=_currentGroup.Clone;
     query.CopyToDataTable(Temp, LoadOption.PreserveChanges)
      

  2.   

    直接用 table.Merge(table1)不行?
      

  3.   

    合并两个表,设定参数,相同的椱盖。你可参考MSDN
      

  4.   

     table.Merge(table1,false) 或table.Merge(table1,true)两个都有试一下
      

  5.   

    结构完全相同,就是我修改了零时表的一个字段的值 然后想将这修改后的这行重新copy回原始的表中覆盖之前的老数据,其实就是相当于更新操作
      

  6.   

    试下这个行不行
    table.Merge(table1, false, MissingSchemaAction.AddWithKey);
      

  7.   

    不行还有其他办法么
    最原始的就是我取出改过的行的ID 然后对应的去更新原始数据表这个ID 的某个字段的值。。但我不想这样做 觉得麻烦
      

  8.   

    我从零时表取出改过的行的ID 然后对应的去更新原始数据表这个ID的这个数据行的某个字段的值。。就这个操作
      

  9.   

    新表最好是用  原始表.Copy()方法或Clone()方法来生成,这样才能使表的结构一样。