SqlBulkCopy con Byte [] DataTable columna error

bytearray c# sqlbulkcopy strongly-typed-dataset

Pregunta

Tengo un conjunto de datos fuertemente tipado que contiene una base de datos con una de las columnas como una columna de byte [] que estoy tratando de insertar en un campo de tabla de base de datos binario (4). Puedo establecer los valores de la columna byte [] sin ningún problema, pero recibo la siguiente excepción cuando ejecuto sqlbulkcopy en el datatable:

"El valor dado del tipo Int32 del origen de datos no se puede convertir al tipo binario de la columna de destino especificada".

El datatable es un datatable grande y el sqlbulkcopy funciona bien con el datatable y la tabla de la base de datos menos las columnas de bytes [] / binarias (4). El siguiente es el código que he insertado que está rompiendo 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();
}

Respuesta aceptada

Descubrí mi problema. La columna Byte [] en mi datatable no estaba en la misma posición ordinal que la columna de la base de datos correspondiente. El ordinal de la columna de datos era 56 mientras que el ordinal de la columna de la base de datos era 8, por lo tanto, era necesario reorganizar el datatable o el mapeo de columnas para la sqlbulkcopy. Reorganizar el datatable fue mucho más fácil y rápido.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué