日期:2014-05-18  浏览次数:21096 次

foreach 中DataTable如何使用
我要写数据导入这部分遇到一个难题.我要导入数据时会把要导入的数据新建一个临时数据库tmpAirport里面,然后将tmpAirport和数据库Airport进行对比.如果有新的内容则向Airport里面添加tmpAirport的新内容.现在新建临时数据库已完成.导放的时候对比如何去比对忘了.
请高手把foreach哪段指点指点,在线等
代码如下..
SqlConnection connAirport = new SqlConnection("server=.;uid=sa;pwd=sa;database=Airport");
  SqlConnection connDBname = new SqlConnection("server=.;uid=sa;pwd=sa;database=tmpAirport");

  //Airport数据查询
  SqlCommand cmdAirport = new SqlCommand("select * from AreaBasicAttach where AirportID=6", connAirport);
  SqlDataAdapter daAirport = new SqlDataAdapter(cmdAirport);
  DataSet dsAirport = new DataSet();
  daAirport.Fill(dsAirport);


  //导入部分数据查询
  SqlCommand cmdDBname = new SqlCommand("select * from AreaBasicAttach where AirportID=6", connDBname);
  SqlDataAdapter daDBname = new SqlDataAdapter(cmdDBname);
  DataSet dsDBname = new DataSet();
  daDBname.Fill(dsDBname);

  foreach (DataTable Table in dsDBname.Tables)
  {
  //这个里面怎么对比然后导入??
  }
  }

------解决方案--------------------
思路有点问题,这样写出来的代码效率很低.

将tmpAirport和数据库Airport进行对比.如果有新的内容则向Airport里面添加tmpAirport的新内容>>=
直接写一条sql语名就搞定了吗:
insert into Airport(字段名,...) select (字段名,...) from tmpAirport where id not in (select id from Airport)
------解决方案--------------------
LS 说的是 既然是导同数据类型和结构的数据,何必用第三方来实现呢,本身数据库自己可以实现的东东。

顺便再说 新版CSDN确实不咋地,慢了很多……
------解决方案--------------------
同意楼上

也建议楼主在源表中做控制,然后根据一定的条件取源表中的数据,例如加个LastUpdate列,判断在源表该列大于目的表中的Max(LastUpdate),然后把记录取出来。。。
------解决方案--------------------
已经结贴,给分