2012-08-31 87 views
6

我在下面尝试这2个调用,但它们都返回给我一个异常Customer_ID不允许DBNull.Value。但是当我调试时,我发现我的所有记录都分配了Customer_ID。这是唯一一个在我的数据库表中不可空的定义。什么导致了这个错误?sqlbulkcopy - 不允许DBNull.Value。?

bulkCopy.WriteToServer(myBookingDataTable) 

    bulkCopy.WriteToServer(myBookingss.ToArray()) 

这是我的整个代码。

Using myConnection As SqlConnection = _ 
       New SqlConnection(connectionString) 
       myConnection.Open() 


       Using bulkCopy As SqlBulkCopy = _ 
        New SqlBulkCopy(My.Settings.ConnectionString(), SqlBulkCopyOptions.Default) 

        bulkCopy.DestinationTableName = "dbo.Booking" 

        Try 
         ' Write from the source to the destination. 
         bulkCopy.WriteToServer(myBookingDataTable) 

         'bulkCopy.WriteToServer(myBookingss.ToArray()) 

        Catch ex As Exception 
         Console.WriteLine(ex.Message) 

        Finally 

         bulkCopy.Close() 
        End Try 
       End Using 
+1

是字段的顺序是源和目标是否一致? – Pleun

+0

@Pleun:非常感谢你的帮助。这确实是问题。我正在使用dataset.xsd项目来定义datatable,虽然我添加了一个新的,它不知道如何,因为它应该是。但是为什么sqlbulkcopy非常敏感呢?你能否回答我也接受你的评论作为正确答案。再次感谢。 – batmaci

回答

15

确保源和目标中字段的顺序完全相同。