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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top