2008-11-12 7 views
7

Mam DataSet z , który poprawnie wypełnia pojedynczy DataRow poprzez TableAdapter.Jak odczytać tablicę bajtów z DataRow w C#?

jestem w stanie wyciągnąć dane z DataRow z kodem tak:

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

mam inną kolumnę o nazwie DataFile typu varbinary(max).

Kiedy próbuję pobrać dane tej kolumny z tego samego DataRow jak wyżej, nic nie otrzymuję.

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

Jeśli mogę umieścić punkt przerwania w tym miejscu, mogę spojrzeć w dataFileDataRow, spojrzeć na własność tablicy ItemArray i przekonaj się, że dane binarne siedzi w pozycji 5 w tablicy ItemArray.

Próbowałem uzyskać dostęp do ItemArray bezpośrednio za pomocą jej indeksu, ale tablica bajtów nie jest kopiowana do zmiennej fileFromDatabase.

Mam również zauważyć, że dodanie fileFromDatabase do mojego zegarka produkuje ten błąd:

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

Wykonanie jest nadal w tym samym bloku co definicji fileFromDatabase więc ja nie rozumiem, jak to będzie z kontekstu .

Posiadałem konfigurację programu Visual Studio ustawioną na Release zamiast Debug. To powodowało, że nie widziałem informacji o debugowaniu w czasie rzeczywistym, których szukałem podczas próby sprawdzenia fileFromDatabase. Po przejściu z wersji Release do debugowania, jestem teraz w stanie zobaczyć zmienną w zegarku i mogę sprawdzić, czy powyższy kod działa poprawnie.

+0

Proszę określić w jakim języku pracujesz w. –

+0

Piszę w C# –

Odpowiedz

2

Powyższy kod działa, upewnij się, że ustawiłeś swój debugger na kompilację do debugowania, NOT Release.

Keith

Powiązane problemy