Вопрос

Я пытаюсь написать тест, который возвращает Data-Reader с одним из столбцов, являющихся байтом []. Я подумал, что могу создать DataTable и создать считывателя считывания.

var cboTable = new DataTable("CBOTable");
var colValue = new SqlBinary(ASCII.GetBytes("Hello This is test"));

cboTable.Columns.Add("ByteArrayColumn");
cboTable.Rows.Add(colValue);

var reader= cboTable.CreateDataReader();

Проблема в том, когда я добавляю colValue на данных, а не добавлять его как byte[] это добавляет его в строку, так как это строковое представление, которое "SqlBinary(18)".

Мой вопрос в том, как добавить фактический byte[] в мою историю

Это было полезно?

Решение

Согласно с MSDN:

Если вы создаете DataTable программно, вы должны сначала определить его схему, добавив объекты DataColumn на DataColumncollection (доступ через свойство столбцов). Для получения дополнительной информации о добавлении объектов DataColumn см. Добавление столбцов к DataTable (ADO.NET).

Письма cboTable.Columns.Add("ByteArrayColumn");, вы определили имя столбца, но не дали ему тип, поэтому по умолчанию он является «строкой» столбцом. Вы должны следовать примеру в DOC, чтобы создать схему таблицы перед добавлением данных в таблицу.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top