SqlBulkCopy批量复制表有个奇怪的有关问题
SqlBulkCopy批量复制表有个奇怪的问题。
dataTable中只有3列 name sex address
我想把这个dataTable的全部数据复制到数据库中的一个表,数据库中的结构和dataTable相同,唯一的区别就是数据库中的表多了一个自增的主键id。
结果奇怪的现象就出现了,在数据库设计字段时,如果自增id放在最顶上,address列的值就为null 说明没有复制过来。
但是...可但是..如果设计时把id列拉到最底下,address列的值就复制过来了..相当无语,
期待高人解答..
代码如下 ..填充datatable的部分略了
------解决方案--------------------
设置映射,或者在dt 中加一列,数据为空 位置是第一列
------解决方案--------------------
因为填充的时候 会忽略第一列
------解决方案--------------------
可能需要给datatable添加一个自增列吧~~DataColumn类的AutoIncrement属性。
------解决方案--------------------
http://jackyrong.cnblogs.com/archive/2005/08/29/225521.html
dataTable中只有3列 name sex address
我想把这个dataTable的全部数据复制到数据库中的一个表,数据库中的结构和dataTable相同,唯一的区别就是数据库中的表多了一个自增的主键id。
结果奇怪的现象就出现了,在数据库设计字段时,如果自增id放在最顶上,address列的值就为null 说明没有复制过来。
但是...可但是..如果设计时把id列拉到最底下,address列的值就复制过来了..相当无语,
期待高人解答..
代码如下 ..填充datatable的部分略了
- C# code
SqlBulkCopy sqlBulkCopy = new SqlBulkCopy("server=.;uid=sa;pwd=sa;database=iisLogTest"); sqlBulkCopy.DestinationTableName = "iisLogTable";//目标表名 sqlBulkCopy.BatchSize = dt.Rows.Count; SqlConnection sqlConnection = new SqlConnection("server=.;uid=sa;pwd=sa;database=iisLogTest"); sqlConnection.Open(); if (dt != null && dt.Rows.Count != 0) { sqlBulkCopy.WriteToServer(dt); } sqlBulkCopy.Close(); sqlConnection.Close(); stopwatch.Stop();
------解决方案--------------------
设置映射,或者在dt 中加一列,数据为空 位置是第一列
------解决方案--------------------
因为填充的时候 会忽略第一列
------解决方案--------------------
可能需要给datatable添加一个自增列吧~~DataColumn类的AutoIncrement属性。
------解决方案--------------------
http://jackyrong.cnblogs.com/archive/2005/08/29/225521.html