我试图写一个测试,它返回一个数据读取器与所述列中的一个是一个字节[]。 我想我可以创建一个数据表,并创建一个读者。

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对象,请参阅添加列到数据表(ADO.NET)。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top