문제

나는 DataSetDataTable 하나의 항목을 올바르게 채우는 것입니다. DataRow 통해 TableAdapter.

다음과 같은 코드를 사용하여 DataRow에서 데이터를 가져올 수 있습니다.

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

DataFile 유형이라는 또 다른 열이 있습니다. varbinary(max).

동일한 열의 데이터를 가져오려고 하면 DataRow 위와 같이 나는 아무것도 얻지 못합니다.

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

이 위치에 중단점을 넣으면 dataFileDataRow와 ItemArray 속성을 살펴보고 이진 데이터가 ItemArray의 위치 5에 있는지 확인할 수 있습니다.

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

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

"'fileFromDatabase'라는 이름이 현재 컨텍스트에 존재하지 않습니다."

실행은 여전히 ​​fileFromDatabase의 정의와 동일한 블록에 있으므로 어떻게 컨텍스트에서 벗어날 수 있는지 이해할 수 없습니다.

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

도움이 되었습니까?

해결책

위의 코드는 작동합니다. 릴리스가 아닌 디버그용으로 컴파일하도록 디버거를 설정했는지 확인하세요.

키스

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top