Aggiunta di un Byte [] a un datarow
Domanda
Sto cercando di scrivere un test che restituisce un data-reader con una delle colonne essendo un byte []. Ho pensato che posso creare un DataTable e creare un lettore da questo.
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();
il problema è quando aggiungo colValue
al datarow invece di aggiungere come byte[]
aggiunge alla fila come di rappresentazione di stringa che è "SqlBinary(18)"
.
la mia domanda è: come faccio ad aggiungere un byte[]
reale alla mia datarow
Soluzione
MSDN :
Se si sta creando un DataTable a livello di codice, è necessario prima definire il suo schema con l'aggiunta di DataColumn si oppone alla DataColumnCollection (accessibile tramite la proprietà Columns). Per ulteriori informazioni sull'aggiunta di oggetti DataColumn, vedere Aggiunta di colonne a una DataTable (ADO.NET).
Con la scrittura cboTable.Columns.Add("ByteArrayColumn");
, avete definito un nome di colonna, ma non dato un tipo, quindi il valore predefinito è di essere una colonna "stringa". Si dovrebbe seguire l'esempio nel documento, al fine di creare lo schema della tabella prima di aggiungere dati alla tabella.