2012-08-31 12 views
6

Estoy intentando estas 2 llamadas a continuación pero ambas me devuelven una excepción Customer_ID no permite DBNull.Value. pero cuando depuro, veo que todos mis registros tienen Customer_ID asignado. Es el único definido como nulo en mi tabla DB. ¿Qué está causando ese error?sqlbulkcopy - no permite DBNull.Value.?

bulkCopy.WriteToServer(myBookingDataTable) 

    bulkCopy.WriteToServer(myBookingss.ToArray()) 

aquí está mi código completo.

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

¿El orden del campo es el origen y el objetivo idénticos? – Pleun

+0

@Pleun: muchas gracias por su ayuda. De hecho fue el problema. Estoy usando el elemento dataset.xsd para definir datatable y aunque agregué uno nuevo, de alguna manera no estaba ordenado como se suponía. Pero es extraño por qué sqlbulkcopy es tan sensible. ¿Puedes responder también que acepto tu comentario como respuesta correcta? gracias de nuevo. – batmaci

Respuesta

15

Asegúrese de que el orden de los campos en origen y destino sea idéntico.

Cuestiones relacionadas