2012-08-31 12 views
6

Próbuję tych 2 połączeń poniżej, ale obie z nich zwraca mi wyjątek Customer_ID nie zezwala na DBNull.Value. ale kiedy debuguję, widzę, że wszystkie moje rekordy mają przypisany identyfikator klienta. Jest to jedyny, który nie jest null ustawiony na moim stole DB. co powoduje ten błąd?sqlbulkcopy - nie zezwala na wartość DBNull.Value.?

bulkCopy.WriteToServer(myBookingDataTable) 

    bulkCopy.WriteToServer(myBookingss.ToArray()) 

Oto mój cały kod.

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

Czy kolejność pola jest identyczna dla źródła i celu? – Pleun

+0

@Pleun: dziękuję bardzo za pomoc. To był naprawdę problem. Używam elementu dataset.xsd do definiowania datatable i chociaż dodałem nowy, to w jakiś sposób nie został zamówiony tak jak powinien. Ale to jest trochę dziwne, dlaczego sqlbulkcopy jest tak wrażliwy. czy możesz odpowiedzieć również, że akceptuję twój komentarz jako poprawną odpowiedź. dzięki jeszcze raz. – batmaci

Odpowiedz

15

Upewnij się, że kolejność pól źródła i celu jest identyczna.

Powiązane problemy