2010-08-04 70 views
1

我正在嘗試編寫一個測試,它返回一個數據讀取器,其中一列是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

根據MSDN:加入DataColumn對象來

如果以編程方式創建一個DataTable,你必須先定義它的模式DataColumnCollection(通過Columns屬性訪問)。有關添加DataColumn對象的更多信息,請參閱將列添加到DataTable(ADO.NET)。

通過編寫cboTable.Columns.Add("ByteArrayColumn");,你已經定義了一個列名,但沒有給它一個類型,所以它默認是一個「字符串」列。您應該按照文檔中的示例創建表格模式,然後再將數據添加到表格中。

+0

cboTable.Columns.Add(「ByteArrayProp」,typeof(SqlBinary));是解決這個問題的正確方法。 – 2010-08-04 22:48:08