Question

J'ai un DataSet avec un DataTable qui remplit correctement un seul DataRow via un TableAdapter .

Je peux extraire des données du DataRow avec un code comme celui-ci:

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

J'ai une autre colonne appelée DataFile de type varbinary (max) .

Lorsque je tente d'extraire les données de cette colonne du même DataRow que ci-dessus, je ne reçois rien.

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

Si je mets un point d'arrêt à cet emplacement, je peux consulter dataFileDataRow, consulter la propriété ItemArray et constater que les données binaires sont à la position 5 dans ItemArray.

J'ai essayé d'accéder directement à ItemArray en utilisant son index, mais le tableau d'octets n'est pas copié dans la variable fileFromDatabase.

J'ai également remarqué que l'ajout de fileFromDatabase à ma montre produisait l'erreur suivante:

  

" Le nom 'fileFromDatabase' n'existe pas dans le contexte actuel ""

L'exécution est toujours dans le même bloc que la définition de fileFromDatabase, donc je ne comprends pas en quoi elle serait hors de contexte.

La configuration de Visual Studio était définie sur Release au lieu de Debug. Cela m'empêchait de voir les informations de débogage en temps réel que je cherchais lorsque j'essayais d'examiner fileFromDatabase. Après être passé de Release à Debug, je peux voir la variable dans la montre et vérifier que le code ci-dessus fonctionne correctement.

Était-ce utile?

La solution

Le code ci-dessus fonctionne. Assurez-vous que votre débogueur est compilé pour Debug, NOT Release.

Keith

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top