SQL Server 快速插入大量数据的asp.net代码的简单示例

前端之家收集整理的这篇文章主要介绍了SQL Server 快速插入大量数据的asp.net代码的简单示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!

代码如下:

  1. using System.Data;
  2. using System.Diagnostics;
  3. using System.Data.sqlClient;
  4.    
  5. string connectionString = "Data Source=HG-J3EJJ9LSW5PY;Initial Catalog=Test;User ID=sa;password=hg";
  6. DataTable dataTable = sql_.select_datagrid(" select a from large where 1=0 ").Tables[0];
  7. string passportKey;
  8. for (int i = 0; i < 100000; i++)
  9. {
  10. passportKey = Guid.NewGuid().ToString();
  11. DataRow dataRow = dataTable.NewRow();
  12. dataRow[0] = passportKey;
  13. dataTable.Rows.Add(dataRow);
  14. }
  15. sqlConnection sqlConnection = new sqlConnection(connectionString);
  16. sqlConnection.Open();
  17. sqlTransaction sqltran = sqlConnection.BeginTransaction();
  18. sqlBulkCopy sqlBulkCopy = new sqlBulkCopy(sqlConnection,sqlBulkCopyOptions.KeepIdentity,sqltran);
  19. sqlBulkCopy.DestinationTableName = "large";
  20. sqlBulkCopy.BatchSize = dataTable.Rows.Count;
  21. if (dataTable != null && dataTable.Rows.Count != 0)
  22. {
  23. sqlBulkCopy.WriteToServer(dataTable);
  24. }
  25. sqlBulkCopy.Close();
  26. sqltran.Rollback();
  27. sqlConnection.Close();

注解: <1> sqlBulkCopy.DestinationTableName = "large"; large 指的是目标表的名称
<2> DataTable 的结构要和数据库中的表的结构相同
(DataTable的列不能多于数据库里面的)
(DataTable的列可以少于数据库里面的 如果数据库这一列有默认值的话)
<3> 这里面 我使用了事务 您在使用的时候 也可以不用事务

猜你在找的MsSQL相关文章