Question

Je suis en train d'écrire un test qui retourne un lecteur de données avec l'une des colonnes étant un octet []. Je pensais que je peux créer un datatable et de créer un lecteur de cela.

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();

le problème est quand j'ajoute colValue au datarow au lieu de l'ajouter comme byte[] il ajoute à la ligne comme il est la représentation de chaîne qui est "SqlBinary(18)".

ma question est de savoir comment puis-je ajouter une byte[] réelle à mon datarow

Était-ce utile?

La solution

Selon MSDN :

  

Si vous créez un DataTable programme, vous devez d'abord définir son schéma en ajoutant des objets DataColumn à l'DataColumnCollection (accessible par la propriété Colonnes). Pour plus d'informations sur l'ajout d'objets DataColumn, voir Ajout de colonnes à un DataTable (ADO.NET).

En écrivant cboTable.Columns.Add("ByteArrayColumn");, vous avez défini un nom de colonne, mais pas donné un type, donc la valeur par défaut étant une colonne « string ». Vous devez suivre l'exemple dans le doc afin de créer le schéma de la table avant d'ajouter des données à la table.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top