Home >Database >Mysql Tutorial >How to Efficiently Insert a DataTable into a SQL Server Database?

How to Efficiently Insert a DataTable into a SQL Server Database?

Susan Sarandon
Susan SarandonOriginal
2025-01-07 22:40:46219browse

How to Efficiently Insert a DataTable into a SQL Server Database?

Optimize batch insertion of DataTable into database

When inserting large amounts of data into the database, row-by-row insertion is inefficient. Using batch insertion technology can significantly improve performance.

SqlBulkCopy implements efficient data insertion

For SQL Server databases, the SqlBulkCopy class provides an efficient way to insert a DataTable into the database in a single operation. This method avoids row-by-row insertion and greatly reduces processing time.

Code Example

The following code demonstrates how to use SqlBulkCopy:

<code class="language-csharp">using (var bulkCopy = new SqlBulkCopy(_connection.ConnectionString, SqlBulkCopyOptions.KeepIdentity))
{
    // 将DataTable列映射到SQL表列
    foreach (DataColumn col in table.Columns)
    {
        bulkCopy.ColumnMappings.Add(col.ColumnName, col.ColumnName);
    }

    // 设置目标表名
    bulkCopy.DestinationTableName = destinationTableName;

    // 设置超时时间(可选)
    bulkCopy.BulkCopyTimeout = 600;

    // 将DataTable插入数据库
    bulkCopy.WriteToServer(table);
}</code>

Custom mapping (optional)

If the DataTable column names do not match the SQL table column names, you can use the ColumnMappings property of SqlBulkCopy to map manually.

The above is the detailed content of How to Efficiently Insert a DataTable into a SQL Server Database?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn