Pregunta

Estoy intentando escribir una prueba que devuelve un lector de datos con una de las columnas de ser un byte []. Me di cuenta que puedo crear una tabla de datos y crear un lector de eso.

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

El problema es cuando agrego colValue a la DataRow en lugar de añadir como un byte[] se añade a la fila, ya que de representación de cadena que es "SqlBinary(18)".

mi pregunta es ¿cómo puedo añadir un byte[] real a mi DataRow

¿Fue útil?

Solución

Según MSDN :

  

Si va a crear un DataTable mediante programación, primero debe definir su esquema añadiendo DataColumn se opone a la DataColumnCollection (se accede a través de la propiedad Columns). Para obtener más información sobre la adición de objetos DataColumn, consulte Adición de columnas a una DataTable (ADO.NET).

Al escribir cboTable.Columns.Add("ByteArrayColumn");, que haya definido un nombre de columna, pero no se da un tipo, por lo que el valor predeterminado es ser una columna de "cadena". Debe seguir el ejemplo en el documento con el fin de crear el esquema de la tabla antes de añadir datos a la tabla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top