快速批量数据插入
2013-01-10 13:46
169 查看
/// <summary> /// 用datatabel来批量插入数据 /// </summary> /// <param name="tableName">表名</param> /// <param name="dt">datatabel对象</param> /// <returns></returns> public bool ExecuteInsertCommand(Dictionary<string, DataTable> dic) { bool flag = false; using (SqlConnection conn = new SqlConnection(sqlHelper.SQLConString)) { SqlTransaction transaction = null; try { conn.Open(); transaction = conn.BeginTransaction(); foreach (DataTable dicItem in dic.Values) { SqlBulkCopy sbc = new SqlBulkCopy(sqlHelper.SQLConString); //服务器上目标表的名称 sbc.DestinationTableName = dicItem.TableName; sbc.BatchSize = dicItem.Rows.Count; sbc.BulkCopyTimeout = 180; sbc.WriteToServer(dicItem); } flag = true; transaction.Commit(); } catch (Exception ex) { flag = false; string errMsg = ex.Message; transaction.Rollback(); } } return flag; }
之前遇到一个异常:从bcp客户端收到一个对Colid 24 无效的列长度
原因:第24列的参数长度大于数据库列定义长度
构造的DataTable的列顺序要和数据的顺序一样
构造DataTable时字段的顺序一定要和数据库中的顺序对应(不知道是不是,反正我这样做了就行了)
相关文章推荐
- 使用JDBC在MySQL数据库中快速批量插入数据
- jsp使用JDBC在MySQL数据库中快速批量插入数据(几万行数据)
- SQL Server 2012中快速插入批量数据的示例及疑惑
- oracle 快速批量插入复杂数据的内容
- C#/.Net 中快速批量给SQLite数据库插入测试数据
- 使用JDBC在MySQL数据库中快速批量插入数据
- 使用JDBC在MySQL数据库中快速批量插入数据
- 使用JDBC在MySQL数据库中快速批量插入数据
- 我的.Net学习之路六——快速的批量插入数据
- SQL Server 2012中快速插入批量数据的示例及疑惑
- 使用JDBC在MySQL数据库中快速批量插入数据
- SQL Server 2012中快速插入批量数据的示例及疑惑
- SQL Server 2012中快速插入批量数据的示例及疑惑 【转载】
- Oracle数据库-快速备份表,按条件备份表,快速创建表,批量插入数据,批量按条件插入,批量插入指定字段的数据
- Mysql 快速插入批量数据,从文件中导入数据
- C API向MySQL插入批量数据的快速方法——关于mysql_autocommit
- C API向MySQL插入批量数据的快速方法——关于mysql_autocommit
- SQL Server 2012中快速插入批量数据的示例及疑惑
- 使用JDBC在MySQL数据库中如何快速批量插入数据
- 使用JDBC在MySQL数据库中快速批量插入数据