将EXCEL文件中的数据导入到数据库时,想先验证导入数据中是否存在和数据库中数据相同的项(字段为中文),不想用存储过程来实现,执行时间长,效率低,想先把数据库中的数据取出来保存在集合里面和EXCEL中的数据对比,请教高手如何能实现。

解决方案 »

  1.   

    将数据库中要比对的列全部查出放入LIST内
    然后循环读取EXCLE内的数据
    使用LIST.contain()来判断ps:
    1.建议你在EXCLE内设置列筛选,先保证至少EXCLE内数据不会出现重复
    2.存储过程并不是你所想像的那样 执行时间长,效率低 
      

  2.   

    我的意思是 我如果在数据库里面进行比较
    比如说  select id from [表名] where 列名=[EXCEL数据] 然后判断查没查出来,查出来了就不插入。这样如果我EXCEL数据量大不是会要很长时间?
      

  3.   


    这样的话,如果你EXCLE内有100条数据,你不是要访问100次数据库?你认为是你这样好,还是我说的:一次性将所有数据取也 然后遍历EXCLE进行比对,我只访问了1次数据库你说哪种方法好?
      

  4.   

    想知道楼主的存储过程是如何写的,效率应该不会很慢吧?将两端的数据存放在数据集中,在内存中比较同样是可以实现.使用DataTable 所提供的Select()方法来查询,不过与数据库相比,还是比较麻烦,如果数据不是太多,还是从数据库走方便.