1

我正在尝试编写一个返回数据读取器的测试,其中一列是字节 []。我想我可以创建一个数据表并从中创建一个阅读器。

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到数据行而不是将其添加为 abyte[]时,它会将其添加到行中,因为它的字符串表示形式是"SqlBinary(18)".

我的问题是如何将实际添加byte[]到我的数据行

4

1 回答 1

1

根据MSDN

如果您以编程方式创建 DataTable,则必须首先通过将 DataColumn 对象添加到 DataColumnCollection(通过 Columns 属性访问)来定义其架构。有关添加 DataColumn 对象的详细信息,请参阅向 DataTable 添加列 (ADO.NET)。

通过编写cboTable.Columns.Add("ByteArrayColumn");,您已经定义了一个列名,但没有给它一个类型,所以它默认为一个“字符串”列。您应该遵循文档中的示例,以便在将数据添加到表之前创建表模式。

于 2010-08-04T22:32:24.083 回答