#region public void SqlBulkCopyData(DataTable dataTable) 利用Net SqlBulkCopy 批量导入数据库,速度超快
/// <summary> /// 利用Net SqlBulkCopy 批量导入数据库,速度超快 /// </summary> /// <param name="dataTable">源内存数据表</param> public void SqlBulkCopyData(DataTable dataTable) { // SQL 数据连接 SqlConnection sqlConnection = null; // 打开数据库 this.Open(); // 获取连接 sqlConnection = (SqlConnection)GetDbConnection(); using (SqlTransaction tran = sqlConnection.BeginTransaction()) { // 批量保存数据,只能用于Sql SqlBulkCopy sqlbulkCopy = new SqlBulkCopy(sqlConnection, SqlBulkCopyOptions.Default, tran); // 设置源表名称 sqlbulkCopy.DestinationTableName = dataTable.TableName; // 设置超时限制 sqlbulkCopy.BulkCopyTimeout = 1000;foreach (DataColumn dtColumn in dataTable.Columns)
{ sqlbulkCopy.ColumnMappings.Add(dtColumn.ColumnName, dtColumn.ColumnName); } try { // 写入 sqlbulkCopy.WriteToServer(dataTable); // 提交事务 tran.Commit(); } catch { tran.Rollback(); sqlbulkCopy.Close(); } finally { sqlbulkCopy.Close(); this.Close(); } } } #endregion作者:王春天 地址: