多くの場合、Excelデータの読み取りやデータベースへのバッチ挿入などのバッチ挿入操作を実行します。現時点では、1つずつトラバースして1つずつ挿入することはできません。C#のSqlBulkCopyはバッチの機能を提供します。挿入。バッチ挿入にSqlBulkCopyを使用するには、データベースにテーブルを作成する必要があります。挿入するときは、主にDataTableを使用して値を転送します。DataTableに挿入する列は、データベースの対応する列に対応している必要があります。ここでは主に使用方法について説明します。コードは次のとおりです。
try
{
//这里模拟一个DataTable数据,批量插入主要插入的就是一个DataTable
DataTable dt = new DataTable();
dt.Columns.Add("LOGINNAME");
dt.Columns.Add("USERNAME");
//给DataTable赋值
for(int i = 0;i < 3; i++)
{
DataRow row = dt.NewRow();
row["LOGINNAME"] = i;
row["USERNAME"] = i;
dt.rows.Add(row);
}
using(SqlConnection cn = new SqlConnection("Data Source=xx.xxx.xx.xxx;Initial Catalog = XXXX;Integrated Security = SSPI;"))
{
cn.Open();
SqlBulkCopy sqlBulkCopy = new SqlBulkCopy();
//这里对应的是数据库里面的表的表名
sqlBulkCopy.DestinationTableName = "TEST";
//前面的参数是对应插入的DataTable的字段,后面是对应的数据库的表的字段,将要插入的DataTable与要对应的数据库字段一一对应即可
sqlBulkCopy.ColumnMappings.Add("LOGINNAME","LOGINNAME");
sqlBulkCopy.ColumnMappings.Add("USERNAME","USERNAME");
//进行数据的批量插入操作
sqlBulkCopy.WriteToServer(dt);
}
}
catch(Exception ex)
{
Console.WriteLine(ex);
}