SqlBulkCopy - 不允许使用 DBNull.Value.?

9

我尝试了以下这两个调用,但都返回一个异常:“Customer_ID不允许DBNull.Value”。但是当我调试时,我看到所有的记录都已分配了Customer_ID。它是我数据库表中唯一一个不可为空的定义。是什么导致了这个错误?

   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

2
字段的顺序是源和目标相同的吗? - Pleun
@Pleun:非常感谢你的帮助。这确实是问题所在。我正在使用dataset.xsd项目来定义datatable,尽管我添加了一个新的,但它却没有按照预期排序。但是sqlbulkcopy为什么会那么敏感,这有点奇怪。请问您是否能够回答我的问题并接受您的评论作为正确答案。再次感谢。 - Emil
1个回答

16

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接