我正在尝试编写一个返回数据读取器的测试,其中一列是byte []。 我想我可以创建一个数据表并从中创建一个阅读器。
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[]
添加到我的数据行
答案 0 :(得分:1)
根据MSDN:
如果以编程方式创建DataTable,则必须首先通过将DataColumn对象添加到DataColumnCollection(通过Columns属性访问)来定义其架构。有关添加DataColumn对象的更多信息,请参阅向DataTable添加列(ADO.NET)。
通过编写cboTable.Columns.Add("ByteArrayColumn");
,您已经定义了一个列名,但没有给它一个类型,所以它默认为一个“字符串”列。您应该遵循doc中的示例,以便在向表中添加数据之前创建表模式。