最佳化批次插入DataTable到資料庫
向資料庫插入大量資料時,逐行插入效率低。 採用批量插入技術可顯著提升效能。
SqlBulkCopy實現高效率資料插入
對於SQL Server資料庫,SqlBulkCopy類別提供了一種高效率的單次操作將DataTable插入資料庫的方法。此方法避免了逐行插入,大幅縮短處理時間。
程式碼範例
以下程式碼示範如何使用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>
自訂映射(可選)
如果DataTable列名與SQL表列名不匹配,可以使用SqlBulkCopy的ColumnMappings屬性手動對應。
以上是如何有效率地將DataTable插入SQL Server資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!