优化批量插入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中文网其他相关文章!