SqlServerのバッチ挿入にはC#を使用します

        多くの場合、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);
}

       

おすすめ

転載: blog.csdn.net/qq_41061437/article/details/105521919