首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

大批量insert时,有什么美的方法

2012-09-24 
大批量insert时,有什么好的方法?大批量insert时,有什么好的方法?[解决办法]SqlBulkCopy[解决办法]分批提交

大批量insert时,有什么好的方法?
大批量insert时,有什么好的方法?

[解决办法]
SqlBulkCopy
[解决办法]
分批提交 也可以提高下效率
[解决办法]
使用事务
[解决办法]
如果要求一次全部成功就用事务,没有要求的,一般操作就可以了,所有插入操作完成后再关闭数据库连接。
[解决办法]
SqlBulkCopy
[解决办法]

SQL code
该表在这儿只是演示使用,所以只提供了最基本的字段 现在往表中插入几条记录 insert into Counter select '127.0.0.1',getdate(),1 union all select '127.0.0.2',getdate(),1 union all select '127.0.0.3',getdate(),1
[解决办法]
批量插入,每2000行提交一次

C# code
public void BulkCopy(string tableName, DataTable dt)        {            using (SqlConnection conn = new SqlConnection(_connString))            {                conn.Open();                using (SqlTransaction transaction = conn.BeginTransaction())                {                    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn, SqlBulkCopyOptions.Default, transaction))                    {                        bulkCopy.BatchSize = 2000;                        bulkCopy.BulkCopyTimeout = _CommandTimeOut;                        bulkCopy.DestinationTableName = tableName;                        try                        {                            foreach (DataColumn col in dt.Columns)                            {                                bulkCopy.ColumnMappings.Add(col.ColumnName, col.ColumnName);                            }                            bulkCopy.WriteToServer(dt);                            transaction.Commit();                        }                        catch (Exception ex)                        {                            transaction.Rollback();                            base.ThrowException(ex);                        }                        finally                        {                            conn.Close();                        }                    }                }            }        }
[解决办法]
BulkCopy,BulkInsert都可以

面对大批量数据时蛮有效的

热点排行