2012-08-31 13 views
6

Sto provando queste 2 chiamate di seguito, ma entrambe mi restituiscono un'eccezione Customer_ID non consente DBNull.Value. ma quando eseguo il debug, vedo che tutti i miei record hanno assegnato Customer_ID. È l'unico come non annullabile definito sulla mia tabella DB. cosa sta causando quell'errore?sqlbulkcopy - non consente DBNull.Value.?

bulkCopy.WriteToServer(myBookingDataTable) 

    bulkCopy.WriteToServer(myBookingss.ToArray()) 

ecco il mio intero codice.

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

l'ordine del campo è identico all'origine e alla destinazione? – Pleun

+0

@Pleun: grazie mille per il tuo aiuto. Era davvero il problema. Sto usando l'oggetto dataset.xsd per definire datatable e sebbene ne abbia aggiunto uno nuovo, in qualche modo non è stato ordinato come dovrebbe essere. Ma è abbastanza strano il motivo per cui sqlbulkcopy è molto sensibile. Puoi anche rispondere che accetto il tuo commento come risposta corretta. grazie ancora. – batmaci

risposta

15

Assicurarsi che l'ordine dei campi in origine e destinazione sia identico.