2012-08-31 58 views
6

これらの2つの呼び出しを以下に試していますが、どちらも私には例外を返します。Customer_IDはDBNull.Valueを許可しません。デバッグすると、すべてのレコードにCustomer_IDが割り当てられていることがわかります。それは私のDBテーブルで定義されたnullableではない唯一のものです。そのエラーの原因は何ですか?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

ソースとターゲットのフィールドの順序が同じであることを確認してください。

関連する問題