Ajout d'un octet [] à un datarow
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
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.