我有2个datatable
一个t1有5列 abcde 。总共有10行数据
一个t2有1列 a 。总共有2行数据我想把t1中a列的值和t2的a列值相同的行全部去掉类似sql中select * from t1 where a not in (select a from t2)改怎么操作啊

解决方案 »

  1.   

    有个办法,不算太好,先求出表1中a字段值在表2中有的,再用表1减去var query =
     from row_1 in table1.AsEnumerable()
     join row_2 in table2.AsEnumeralbe()
     on row_1.field<int>("a") equals row_2.field<int>("a")
     select row_1;var result = table1.AsEnumerable().Except(query);大概这个意思
      

  2.   

    合并2个表的数据,然后用linq操作.不知道行不行,
      

  3.   

    用DataView,对两个表建立关系,和数据库类似
      

  4.   

    找到办法了
    用datatable的select()方法,可以用not in
      

  5.   

    var result = table1.AsEnumerable().Except(table1.AsEnumerable());
      

  6.   


    var result = table1.AsEnumerable().Except(table2.AsEnumerable());
    参考
    http://technet.microsoft.com/zh-tw/library/bb300779(v=vs.95).aspx