使用C#进行SqlServer的批量插入

        在很多时候,我们会进行一下批量插入的操作,比如读取Excel数据,进行批量插入到数据库,这时候不可能一条一条遍历再一条一条进行插入,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