不必一条一条Insert到数据库。
可以考虑下面的方法:
http://www.cnblogs.com/insus/archive/2012/09/22/2698515.html

解决方案 »

  1.   

    在循环前用Connection.BeginTransaction()  循环后用Tran.Commit();有用吗
    我在SQL 查询分析器里面写N条insert语句在前后加入BeginTransaction 和commit 要比直接插入快10倍以上。。
      

  2.   

    再for循环前开启事务,然后再一条条插入数据,最后统一提交事务。如果你不开启事务,SQL Server会默认地为每一条都创建一个独立的事务。这很不值得。
      

  3.   

    “有个现象,当注释掉cmd.ExecuteNonQuery()的时候在看数据插入的数据表,竟然过了30,40秒还陆陆续续有数据进来,”不太懂你这句话是什么一地。既然都注释掉了执行语句,怎么还会改变数据库?如果有,只能说明你的 sql 代码中有太多的不合理的“锁”。你应该对大量的查询(而非修改)操作的数据库事务级别降低,或者写上类似 with (nolock) 这样的关键字!