C# 使用SqlBulkCopy类批量复制大数据

  • Post category:other

C#使用SqlBulkCopy类批量复制大数据

在C#中,如果需要将大量数据从一个表复制到另一个表,可以使用SqlBulkCopy类来实现批量复制。本文将介绍SqlBulkCopy类的使用方法,并提供两个示例说明。

SqlBulkCopy类的使用

SqlBulkCopy类是.NET Framework提供的一个用于批量复制数据的类,它可以将数据从一个数据源复制到另一个数据源。以下是SqlBulkCopy类的基本使用方法:

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
    {
        bulkCopy.DestinationTableName = "DestinationTable";
        bulkCopy.WriteToServer(sourceDataTable);
    }
}

在上面的示例中,我们首先创建了一个SqlConnection对象,然后打开连接。接着,我们创建了一个SqlBulkCopy对象,并设置了目标表的名称。最后,我们调用WriteToServer方法将源数据表中的数据复制到目标表中。

需要注意的是,SqlBulkCopy类只能用于将数据从一个数据源复制到另一个数据源,不能用于在同一个数据源中复制数据。

SqlBulkCopy类的示例

以下是一个示例,用于将一个DataTable对象中的数据复制到SQL Server数据库中的一个表中:

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
    {
        bulkCopy.DestinationTableName = "DestinationTable";
        bulkCopy.WriteToServer(sourceDataTable);
    }
}

在上面的示例中,我们首先创建了一个SqlConnection对象,然后打开连接。接着,我们创建了一个SqlBulkCopy对象,并设置了目标表的名称。最后,我们调用WriteToServer方法将源数据表中的数据复制到目标表中。

以下是另一个示例,用于将一个IDataReader对象中的数据复制到SQL Server数据库中的一个表中:

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
    {
        bulkCopy.DestinationTableName = "DestinationTable";
        bulkCopy.WriteToServer(sourceDataReader);
    }
}

在上面的示例中,我们首先创建了一个SqlConnection对象,然后打开连接。接着,我们创建了一个SqlBulkCopy对象,并设置了目标表的名称。最后,我们调用WriteToServer方法将源数据读取器中的数据复制到目标表中。

结论

在C#中,我们可以使用SqlBulkCopy类来实现批量复制大量数据。使用SqlBulkCopy类的方法比较简单,只需要创建一个SqlBulkCopy对象,并调用WriteToServer方法即可。无论是从DataTable对象还是从IDataReader对象中复制数据,都可以使用SqlBulkCopy类来实现。