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

<div class="codetitle"><a style="CURSOR: pointer" data="74415" class="copybut" id="copybut74415" onclick="doCopy('code74415')"> 代码如下:

<div class="codebody" id="code74415">
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> 这里面 我使用了事务 您在使用的时候 也可以不用事务

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...