SqlBulkCopy с байтом [] Ошибка столбца DataTable

bytearray c# sqlbulkcopy strongly-typed-dataset

Вопрос

У меня есть строго типизированный набор данных, содержащий данные с одним из столбцов в виде столбца byte [], который я пытаюсь вставить в поле таблицы базы данных (4). Я могу установить значения столбца байта [] без каких-либо проблем, но я получаю следующее исключение, когда я запускаю sqlbulkcopy в datatable:

«Данное значение типа Int32 из источника данных не может быть преобразовано в двоичный файл типа указанного целевого столбца».

Datatable является большим datatable, и sqlbulkcopy отлично работает с таблицей данных и таблицей базы данных минус столбцы [] / binary (4). Ниже приведен код, который я вставил, который разбивает SqlBulkCopy с помощью .NET 2.0.

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

...

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

Принятый ответ

Я обнаружил свою проблему. Столбец Byte [] в моем datatable не был в том же порядковом положении, что и соответствующий порядковый номер столбца базы данных. Типовой порядковый номер столбца составлял 56, а порядковый номер столбца базы данных - 8, поэтому либо подлежащую реорганизации, либо сопоставление столбцов для sqlbulkcopy. Реорганизация данных была намного проще и быстрее.



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow