Domanda

Ho un DataSet con un DataTable che riempie correttamente un singolo DataRow attraverso un TableAdapter .

Sono in grado di estrarre dati da DataRow con un codice come questo:

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

Ho un'altra colonna chiamata DataFile di tipo varbinary (max) .

Quando provo a estrarre i dati di quella colonna dallo stesso DataRow di cui sopra non ottengo nulla.

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

Se inserisco un punto di interruzione in questa posizione, posso esaminare dataFileDataRow, esaminare la proprietà ItemArray e vedere che i dati binari si trovano nella posizione 5 in ItemArray.

Ho provato ad accedere a ItemArray direttamente usando il suo indice ma l'array di byte non viene copiato nella variabile fileFromDatabase.

Ho anche notato che l'aggiunta di fileFromDatabase al mio orologio produce questo errore:

  

" Il nome 'fileFromDatabase' non esiste nel contesto corrente "

L'esecuzione è ancora nello stesso blocco della definizione di fileFromDatabase, quindi non capisco come sarebbe fuori contesto.

Avevo la configurazione di Visual Studio impostata su Rilascio anziché Debug. Questo mi stava facendo non vedere le informazioni di debug in tempo reale che stavo cercando quando provavo ad esaminare fileFromDatabase. Dopo essere passato da Release a Debug, sono in grado di vedere la variabile nell'orologio ora e posso verificare che il codice sopra funzioni correttamente.

È stato utile?

Soluzione

Il codice sopra funziona, assicurati di impostare il debugger per la compilazione per Debug, NON Release.

Keith

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