快速插入大量数据的asp.net代码(Sqlserver)

复制代码 代码如下:

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> 这里面 我使用了事务 您在使用的时候 也可以不用事务

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐