SqlBulkCopy con Byte [] Errore nella colonna DataTable

bytearray c# sqlbulkcopy strongly-typed-dataset

Domanda

Ho un dataset fortemente tipizzato contenente un datatable con una delle colonne come una colonna di byte [] che sto cercando di inserire in un campo di tabella di database binario (4). Sono in grado di impostare i valori della colonna byte [] senza problemi, ma ricevo la seguente eccezione quando eseguo sqlbulkcopy sul datatable:

"Il valore dato di tipo Int32 dall'origine dati non può essere convertito in tipo binario della colonna di destinazione specificata."

Il datatable è un grande datatable e sqlbulkcopy funziona bene con la tabella datatable e database meno le colonne byte [] / binary (4). Quello che segue è il codice che ho inserito che sta interrompendo SqlBulkCopy usando .NET 2.0.

byte[] codeByteArray = GetByteArray();
dt.byteArrayCol = codeByteArray;

...

using(SqlBulkCopy bc = new SqlBulkCopy(conn))
{
    bc.DestinationTableName = dt.TableName;
    bc.WriteToServer(dt);
    bc.Close();
}

Risposta accettata

Ho scoperto il mio problema La colonna Byte [] nel mio datatable non era nella stessa posizione ordinale del corrispondente ordinale della colonna del database. L'ordinale della colonna datatable era 56 mentre la colonna del database ordinale era 8, quindi il datatable doveva essere riorganizzato o il columnmapping per sqlbulkcopy. Riorganizzare il datatable era molto più facile e veloce.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché