2013-12-11 60 views
0
SqlBulkCopy sqlBulk = new SqlBulkCopy(conn, SqlBulkCopyOptions.KeepIdentity, t); 
sqlBulk.DestinationTableName = DestTableName; 
sqlBulk.BatchSize = 1000; 
sqlBulk.WriteToServer(dt);     
t.Commit(); 

错误分配,如果我给你我的身份列值,如果我没有指定它说:“空不是主键允许”列 - 怎么办?SQL自动递增列如何DataTable中

+0

有人能帮助! –

+0

你想自己添加身份专栏的价值吗? –

+0

我不知道我是否正确尝试'SET IDENTITY_INSERT表名ON'在目的地表 – bansi

回答

0

下面请看:

http://www.4guysfromrolla.com/articles/102109-1.aspx

OR

using (var bulkCopy = new SqlBulkCopy(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString, SqlBulkCopyOptions.KeepNulls & SqlBulkCopyOptions.KeepIdentity)) 
       { 
        bulkCopy.BatchSize = (int)DetailLines; 
        bulkCopy.DestinationTableName = "dbo.myTable"; 
        bulkCopy.ColumnMappings.Clear(); 
        bulkCopy.ColumnMappings.Add("SourceColumnName", "DestinationColumnName"); 
        bulkCopy.ColumnMappings.Add("SourceColumnName", "DestinationColumnName"); 


        bulkCopy.WriteToServer(datatable); 
       }