2008-11-12 5 views
7

DataRow에서 TableAdapter까지 정확하게 채우는 DataTableDataSet이 있습니다.C#의 DataRow에서 바이트 배열을 어떻게 읽습니까?

나는 다음과 같은 코드로 된 DataRow에서 데이터를 당길 수 있어요 :

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

I 유형 varbinary(max)의 데이터 파일이라는 다른 열이 있습니다.

위의 것과 동일한 DataRow에서 해당 열의 데이터를 가져 오려고하면 아무 것도 얻을 수 없습니다. 나는이 위치에 브레이크 포인트를 넣어 경우

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

, 나는 ItemArray 속성으로보고 바이너리 데이터가 ItemArray에서 위치 5에 앉아있는 것을 참조 dataFileDataRow로 볼 수있다.

인덱스를 사용하여 ItemArray에 직접 액세스하려고했지만 바이트 배열이 fileFromDatabase 변수에 복사되지 않았습니다.

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

실행이 fileFromDatabase의 정의와 같은 블록에 여전히 그래서 나는 그것이 문맥이 될 것입니다 방법을 이해하지 않습니다

나는 또한 나의 시계에 fileFromDatabase를 추가하면이 오류가 발생합니다 것으로 나타났습니다 .

Visual Studio의 구성을 디버그 대신 릴리스로 설정했습니다. 이로 인해 fileFromDatabase를 검사 할 때 찾고 있던 실시간 디버깅 정보를 볼 수 없었습니다. Release에서 Debug로 전환 한 후, 지금 시계에서 변수를 볼 수 있으며 위의 코드가 올바르게 작동하는지 확인할 수 있습니다.

+0

작업중인 어떤 언어로 지정하십시오. –

+0

을 나는 C#에서 쓰고 있어요 –

답변

2

위의 코드가 작동하면 Debug가 아닌 Release 용으로 컴파일하도록 디버거를 설정해야합니다.

키스