SqlBulkCopy类(将一个表插入到数据库)

利用SqlBulkCopy类一次插入多条数据,即将一个表直接插入数据库。

首先,新建一个表,要保证表中的列名与数据库表的字段保持一致。

如果数据库一张TableMenuRole表,ID自增,MenuID,RoleID。

则需新建一张这样的表。

DataTable table = new DataTable();

创建一个自增的列ID

DataColumn col = new DataColumn("ID");

col.AutoIncrement=true;

col.AutoIncrementStep=1;//自增1

col.AutoIncrementSpeed=1;

table.Columns.Add(col);//将创建的列加入Table

//给表创建两列

table.Columns.Add("MenuID");

table.Columns.Add("RoleID");

//给表添加10条数据

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

{

  DataRow row =table.NewRow();

  row["MenuID"]=i+5;

  row["RoleID"]=i+10;

  table.Rows.Add(row);

}

table.AcceptChanges();

表已经创建好了,现在将表作为参数插入到数据库
 SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(SqlHelper.ConnectionString, SqlBulkCopyOptions.UseInternalTransaction);
sqlbulkcopy.DestinationTableName = "TableMenuRole";//数据库中的表名
try
{
sqlbulkcopy.WriteToServer(table);
}
catch (Exception e)
{
return false;
}
  finally
{
sqlbulkcopy.Close();
 }
 return true;

原文地址:https://www.cnblogs.com/huangzhen22/p/3266345.html