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
类来实现。