比方说,有两个主键,必须要这两个主键上的值相同的,才把一个datatable的数据更新到另外一个datatable,否则的话,插入,是否有好的方法可以实现呢?谢谢各位了

解决方案 »

  1.   

    foreach(DataRow dr in dt1)
    {
       if(dt2.Select("pk1='"+dr["pk1"].ToString()+"'AND pk2='"+dr["pk1"].ToString()+"'").Length ==0)
          //insert
       else
          //update
    }
      

  2.   

    //新增,更新
    foreach(DataRow dr in dt1) 

       if(dt2.Select("pk1= '"+dr["pk1"].ToString()+" 'AND pk2= '"+dr["pk1"].ToString()+" '").Length ==0) 
          //insert 
       else 
          {  
          //update 
          //+ dt2.delete当前记录 
          }
    }
    //补充删除数据
    foreach(DataRow dr in dt2) {
      //delete dr
    }
      

  3.   

    谢谢楼上的几位大侠,好像是每一行都要进行一个filter,是否有其他的方法呢?不知道filter是不是很浪费效率呢
      

  4.   

                DataColumn[] pk = new DataColumn[primaryKeys.Length];
                for (int i = 0; i < primaryKeys.Length; i++)
                {
                    pk[i] = DataTable1.Columns[primaryKeys[i]];
                }
                DataTable1.PrimaryKey = pk;
      

  5.   

    如果可以的话还是在数据库中使用sql操作比较好些