C#批量插入数据库数据的高效方法

c程序员 by:c程序员 分类:C# 时间:2024/08/31 阅读:64 评论:0

在日常的开发工作中,我们经常需要将大量数据插入到数据库中。这种情况下,如果采用逐条插入的方式,效率会非常低下。幸好,C#提供了多种高效的批量插入数据的方法,可以大大提高数据插入的速度。下面我们就来详细了解一下这些方法。

1. 使用SqlBulkCopy类进行批量插入

SqlBulkCopy类是C#中专门用于批量插入数据的类,它可以高效地将数据从一个数据源复制到数据库表中。使用该类进行批量插入的步骤如下:

  1. 创建SqlBulkCopy对象,并指定目标数据库表名
  2. 设置BatchSize属性,指定每次提交的记录数
  3. 设置DestinationTableName属性,指定目标数据库表名
  4. 调用WriteToServer方法,将数据批量插入到数据库表中

下面是一个示例代码:

using (SqlConnection conn = new SqlConnection(connStr))
{
    conn.Open();
    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn))
    {
        bulkCopy.DestinationTableName = "dbo.MyTable";
        bulkCopy.BatchSize = 1000;
        bulkCopy.WriteToServer(dataTable);
    }
}

2. 使用DataAdapter的BatchUpdate方法进行批量插入

DataAdapter类也提供了一个BatchUpdate方法,可以用于批量插入数据。使用该方法的步骤如下:

  1. 创建SqlDataAdapter对象,并设置InsertCommand属性
  2. 调用Update方法,将数据批量插入到数据库表中

下面是一个示例代码:

using (SqlConnection conn = new SqlConnection(connStr))
{
    conn.Open();
    SqlDataAdapter adapter = new SqlDataAdapter();
    adapter.InsertCommand = new SqlCommand("INSERT INTO dbo.MyTable (Column1, Column2) VALUES (@Column1, @Column2)", conn);
    adapter.InsertCommand.Parameters.AddWithValue("@Column1", "Value1");
    adapter.InsertCommand.Parameters.AddWithValue("@Column2", "Value2");
    DataTable dataTable = new DataTable();
    dataTable.Rows.Add("Value1", "Value2");
    adapter.Update(dataTable);
}

3. 使用Dapper框架进行批量插入

Dapper是一个轻量级的ORM框架,它提供了一个ExecuteBulkCopy方法,可以用于批量插入数据。使用该方法的步骤如下:

  1. 创建一个实体类,表示要插入的数据
  2. 使用ExecuteBulkCopy方法,将实体类列表批量插入到数据库表中

下面是一个

非特殊说明,本文版权归原作者所有,转载请注明出处

本文地址:https://chinaasp.com/2024083980.html


TOP