Possiedo un'operazione SqlBulkCopy che sta acquisendo dati da un database MS-Access 2007 (tramite OleDbConnection) e utilizzando SqlBulkCopy per trasferire tali dati in un database SQL Server. Questo in precedenza ha funzionato e continua a funzionare per un database MS-Access, ma non per l'altro.
Ottengo il messaggio di errore:
Timeout scaduto. Il periodo di timeout è trascorso prima del completamento dell'operazione o il server non risponde.
È difficile credere che sia un timeout nel oledbCommand.CommandTimeout = 0 sqlBulkCopy.BulkCopyTimeout = 0 e su entrambi i lati (MS-Access e SQL Server i timeout sono ora impostati su 0).
Ci sono altri problemi / eccezioni che il messaggio di errore sopra potrebbe nascondere? C'è un modo per determinare quale sia la causa di base di un'eccezione sqlBulkCopy.WriteToServer (non sembrano esserci eccezioni interne ecc ...)
Quindi il problema era che c'erano date in corso di trasferimento e alcune di quelle date non erano valide per SQL, ma valide in Access. Per qualsiasi motivo, questo si presentava come un Timeout piuttosto che come "data / ora non valida", anche se si riducono i dati trasferiti a una manciata di righe (200) anziché il trasferimento completo (500.000) che riporta come data / ora non valida. .. curioso.