快速插入大量数据的asp.net代码(Sqlserver)_mssql数据库教程-查字典教程网
快速插入大量数据的asp.net代码(Sqlserver)
快速插入大量数据的asp.net代码(Sqlserver)
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:usingSystem.Data;usingSystem.Diagnostics;usingSystem.Data.Sql...

复制代码 代码如下:

using System.Data;

using System.Diagnostics;

using System.Data.SqlClient;

string connectionString = "Data Source=HG-J3EJJ9LSW5PY;Initial Catalog=Test;User ID=sa;password=hg";

DataTable dataTable = sql_.select_datagrid(" select a from large where 1=0 ").Tables[0];

string passportKey;

for (int i = 0; i < 100000; i++)

{

passportKey = Guid.NewGuid().ToString();

DataRow dataRow = dataTable.NewRow();

dataRow[0] = passportKey;

dataTable.Rows.Add(dataRow);

}

SqlConnection sqlConnection = new SqlConnection(connectionString);

sqlConnection.Open();

SqlTransaction sqltran = sqlConnection.BeginTransaction();

SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(sqlConnection, SqlBulkCopyOptions.KeepIdentity, sqltran);

sqlBulkCopy.DestinationTableName = "large";

sqlBulkCopy.BatchSize = dataTable.Rows.Count;

if (dataTable != null && dataTable.Rows.Count != 0)

{

sqlBulkCopy.WriteToServer(dataTable);

}

sqlBulkCopy.Close();

sqltran.Rollback();

sqlConnection.Close();

注解: <1> sqlBulkCopy.DestinationTableName = "large"; large 指的是目标表的名称

<2> DataTable 的结构要和数据库中的表的结构相同

(DataTable的列不能多于数据库里面的)

(DataTable的列可以少于数据库里面的 如果数据库这一列有默认值的话)

<3> 这里面 我使用了事务 您在使用的时候 也可以不用事务

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新mssql数据库学习
    热门mssql数据库学习
    编程开发子分类