Maison > base de données > tutoriel mysql > Comment insérer efficacement un DataTable dans une base de données SQL Server ?

Comment insérer efficacement un DataTable dans une base de données SQL Server ?

Susan Sarandon
Libérer: 2025-01-07 22:40:46
original
172 Les gens l'ont consulté

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

Optimiser l'insertion par lots de DataTable dans la base de données

Lors de l'insertion de grandes quantités de données dans la base de données, l'insertion ligne par ligne est inefficace. L’utilisation de la technologie d’insertion par lots peut améliorer considérablement les performances.

SqlBulkCopy implémente une insertion de données efficace

Pour les bases de données SQL Server, la classe SqlBulkCopy fournit un moyen efficace d'insérer un DataTable dans la base de données en une seule opération. Cette méthode évite l’insertion ligne par ligne et réduit considérablement le temps de traitement.

Exemple de code

Le code suivant montre comment utiliser 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>
Copier après la connexion

Mappage personnalisé (facultatif)

Si les noms de colonnes DataTable ne correspondent pas aux noms de colonnes de la table SQL, vous pouvez utiliser la propriété ColumnMappings de SqlBulkCopy pour effectuer un mappage manuel.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal