如何高效的将excel导入sqlserver?大部分人都知道用oledb来读取数据到dataset,但是读取之后怎么处理dataset就千奇百怪了。很多人通过循环来拼接sql,这样做不但容易出错而且效率低下,System.Data.SqlClient.SqlBulkCopy 对于新手来说还是比较陌生的,这个就是传说中效率极高的bcp,6万多数据从excel导入到sql只需要4.5秒。
参考代码:
http://blog.csdn.net/jinjazz/archive/2008/07/14/2650506.aspxexcel导入只是一个特例,其他涉及到批量复制的都可以用它。-------------------------------------------------------- 
很多人发蛋贴攒分,我也发发,但是有1分,发了也不能白发,我会随口说个技术基础点,不只局限于代码。 
高手可以忽略本贴

解决方案 »

  1.   

    学习ing
    回帖是一种美德!传说每天回帖即可获得 10 分可用分! 连续两周技术区参与者,每周额外可以获得88个可用分 
      

  2.   

    原来C#的BCP在这里哦!我原来在C里面用过BCP,对于批量添加数据来说,效率确实非常高!
      

  3.   

    我不是c#的版主也不是.net大版主,也可以加入精华?奇怪
      

  4.   

    SqlBulkCopy是很好的方法。适合在相同表结构大量数据的复制。
      

  5.   

    不同的表结构可以用ColumnMappings
      

  6.   


    以前是battle上a3的小财主,rp号的时候一晚上爆两件漆甲出,连续一周每天一个暴风盾...引退于02年的夏天的dupe大爆发前夕
      

  7.   

    各位,看样将一个字符以Unicode输出
      

  8.   

    System.Data.SqlClient.SqlBulkCopy 帅哭了,oracle有这个东西吗????
      

  9.   

    各位,怎样将一个字符以Unicode输出
      

  10.   

    以前我也是用oledb来做的,还没用过bcp,学习
      

  11.   

    我以前是直接运行bulk insert语句的
      

  12.   

    恩 学习学习 原来处理过很多类似的问题,觉得速度那是一个慢啊 特别数据量大的时候
    System.Data.SqlClient.SqlBulkCopy原来没用过 有个疑问 
    因为客户提供的数据往往是不够严格不够标准点,在导入的EXCEL文件中往往会存在系统中已导入的信息或者是导入数据存在问题无法完成导入的,这种情况我想用一个日志文件来记录这些信息 不晓得用这个System.Data.SqlClient.SqlBulkCopy的时候能否实现呢
      

  13.   

    学习ing 
    回帖是一种美德!传说每天回帖即可获得 10 分可用分! 连续两周技术区参与者,每周额外可以获得88个可用分 
      

  14.   

    goooooooooooooooooooooooooooooooooooooooooooooooooooooooooood.