Pregunta

Tengo un DataSet con una DataTable que llena correctamente una sola DataRow a través de un TableAdapter .

Puedo extraer datos de DataRow con un código como este:

dataFileID = (int)this.dataFileDataRow["DataFileID"];
dataFileName = (string)this.dataFileDataRow["DataFileName"];
dataFileDate = (DateTime)this.dataFileDataRow["DataFileDate"];

Tengo otra columna llamada DataFile del tipo varbinary (max) .

Cuando intento extraer los datos de esa columna del mismo DataRow que el anterior, no obtengo nada.

byte[] fileFromDatabase = (byte[])this.dataFileDataRow["DataFile"];

Si pongo un punto de interrupción en esta ubicación, puedo mirar el dataFileDataRow, mirar la propiedad ItemArray y ver que los datos binarios se encuentran en la posición 5 en el ItemArray.

He intentado acceder al ItemArray directamente usando su índice pero la matriz de bytes no se está copiando a la variable fileFromDatabase.

También he notado que agregar fileFromDatabase a mi reloj produce este error:

  

" El nombre 'fileFromDatabase' no existe en el contexto actual "

La ejecución todavía está en el mismo bloque que la definición de fileFromDatabase, por lo que no entiendo cómo estaría fuera de contexto.

Tenía la configuración de Visual Studio establecida en Release en lugar de Debug. Esto me estaba haciendo no ver la información de depuración en tiempo real que estaba buscando al tratar de examinar fileFromDatabase. Después de cambiar de Release a Debug, ahora puedo ver la variable en el reloj y puedo verificar que el código anterior funciona correctamente.

¿Fue útil?

Solución

El código anterior funciona, asegúrese de configurar su depurador para compilar para depurar, NO liberar.

Keith

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