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>
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!