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;