SqlBulkCopy批量复制表有个奇怪的问题。
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