将字节[]添加到数据行

时间:2010-08-04 22:27:05

标签: .net sql datatable bytearray datarow

我正在尝试编写一个返回数据读取器的测试,其中一列是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[]添加到我的数据行

1 个答案:

答案 0 :(得分:1)

根据MSDN

  

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

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