2008-11-12 17 views
7

Ho un con un DataTable che riempie correttamente un singolo DataRow tramite un TableAdapter.Come si legge un array di byte da un DataRow in C#?

io sono in grado di estrarre i dati dal DataRow con codice come questo:

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

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

Quando provo a prelevare i dati di quella colonna dallo stesso DataRow come sopra, non ottengo nulla.

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

Se metto un punto di rottura in questa posizione, posso guardare nella dataFileDataRow, esaminare la proprietà ItemArray e vedere che i dati binari è seduto in posizione 5 nel ItemArray.

Ho provato ad accedere al ItemArray direttamente utilizzando 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:

"The name 'fileFromDatabase' does not exist in the current context"

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

Ho avuto la configurazione di Visual Studio impostata su Release anziché Debug. Questo mi ha portato a non vedere in tempo reale le informazioni di debug che cercavo quando cercavo di esaminare fileFromDatabase. Dopo aver passato da Rilascio a Debug, ora sono in grado di vedere la variabile nell'orologio e posso verificare che il codice sopra funzioni correttamente.

+0

Si prega di specificare quale lingua si sta lavorando. –

+0

sto scrivendo in C# –

risposta

2

Il codice sopra funziona, assicurati di impostare il debugger da compilare per Debug, NOT Release.

Keith

Problemi correlati