批量导入DataTable到SQL Server中
来源:互联网 发布:新生报到流程优化 编辑:程序博客网 时间:2024/05/01 16:25
使用ASP.NET中的SqlBulkCopy完成DataTable批量导入到数据库中。
SQLBulkCopy,用于数据库之间大批量的数据传递。通常用于新,旧数据库之间数据的更新。即使表结构完全不同,也可以通过字段间的对应关系,顺利的将数据导过来。
首先,SQLBulkCopy需要2个连接,分别连接到不同的旧表所在的数据库,新表所在的数据库。如果是同一个数据库,就可以用同一个SqlConnection对象。
其次,读出需要的数据存在DataTable。
最后,设定对应关系,设定目标表名,写入。
具体代码
public Boolean ceshi ( ) { //1.连接数据库的语句 SqlConnection strConnEvaluate = new SqlConnection ( ConfigurationManager.ConnectionStrings["strConnEvaluate"].ConnectionString ); //打开连接 strConnEvaluate.Open ( ); //2.创建事物 SqlTransaction sqlTran = strConnEvaluate.BeginTransaction ( IsolationLevel.ReadCommitted ); //3.获得dtStuTeaCourse DataTable dt = teacherCourseStudentLinkDAL.GetStuTeachCourse ( ); try { SqlBulkCopy oBC1 = new SqlBulkCopy ( strConnEvaluate, SqlBulkCopyOptions.Default, sqlTran); //实例化批量添加记录的类 oBC1.BatchSize = dt.Rows.Count; //需要添加的记录数量 //oBC1.BulkCopyTimeout = 300; //设置添加数据的最长时间 oBC1.DestinationTableName = "TA_TeacherCourseStudentLink"; //将数据添加到数据库的TA_TeacherCourseStudentLink表中 #region oBC1.ColumnMappings.Add ( "CollegeID", "CollegeTeacherID" ); //第一个参数是源数据列,第二个是目标数据库数据列 oBC1.ColumnMappings.Add ( "CollegeName", "CollegeTeacherName" ); oBC1.ColumnMappings.Add ( "TeacherID", "TeacherID" ); oBC1.ColumnMappings.Add ( "TeacherName", "TeacherName" ); oBC1.ColumnMappings.Add ( "CourseID", "CourseID" ); oBC1.ColumnMappings.Add ( "CourseName", "CourseName" ); oBC1.ColumnMappings.Add ( "StudentID", "StudentID" ); oBC1.ColumnMappings.Add ( "StudentName", "StudentName" ); oBC1.WriteToServer ( dt );//dtAddData是源数据表 sqlTran.Commit ( );//提交事务 return true; } catch (Exception e) { sqlTran.Rollback ( );//出现错误事务回滚 return false; } finally { strConnEvaluate.Close ( );//关闭连接 } }
但是有一个问题需要注意:导入的DataTable与数据库中表的列数量一定要相同,如果不相同这样子添加是不正确的。
对于这种情况,可以使用remove()方法做DataTable做一些修改从而达到和数据库中表中列的数量相同。
0 0
- 批量导入DataTable到SQL Server中
- 【SQL Server】批量数据导入到数据库
- SQL Server中如何批量导入数据
- 利用SqlBulkCopy类 批量导入数据到sql server
- 利用SqlBulkCopy类 批量导入数据到sql server
- 将Excel导入到SQL Server中!
- execl导入到sql server中
- excel导入到sql server数据库中
- xls批量导入sql server
- List 转 DataTable 以及DataTable批量存入SQL Server
- 将多个CSV批量导入SQL Server表中
- 黑马程序员_筛选DataTable中的数据,批量导入到数据库中
- SQL数据库导入批量文本到数据表中
- 把Excel中数据导入到SQL Server中
- Sql server中EXCEL导入到数据库中,出现失败
- 将Excel导入到虚拟DataTable中
- sql server 2005 批量导入导出
- sql server Bulk 批量导入大量数据
- 【求奇数阶幻方】 每一个数放在前一个数的右上一格。1、最小的数(这里为1)一般放在第一行的中间。2、如果这个数所要放的格子已经超出了顶行,就把它放在底行,仍然要放在右上方。3、4、5.....
- 海量数据处理面试题
- Matlab物化实验——雷诺法作图(固体和液体燃烧热的测定)
- ubuntu13.04搭建安卓开发环境(离线安装SDK,附下载地址)
- HTTP 请求、响应、缓存
- 批量导入DataTable到SQL Server中
- 资源访问机制之资源定义与解析流程
- 大二下(3):改革进入深水区...
- 凝聚力
- 存储管理的页面置换算法
- windows路径操作API函数
- HTTP 协议工作原理
- 微信公众平台 qq表情
- Spring源码解析 StringUtils