2012-12-07 2 views
0

C# 일} 처리 작업에서 호출 한 DB2 스토어드 프로 시저를 사용하는 프로그램이 있습니다. .ExecuteReader() 호출이 완료되면 Visual Studio 2010에서 데이터 판독기 개체의 FieldCount가 '0'이고 HasRows 속성이 'False'임을 보여줍니다.DB2DataReader 오브젝트에는 데이터가 있지만 HasRows 등록 정보는 false입니다.

그러나 더 자세히 살펴보면 객체 내부에 숨겨진 깊이가 발견됩니다 (디버깅하는 동안 '로컬'판독 값을 통해 발견 됨). 실제로 저장 프로 시저가 데이터를 다시 보내고 필요한 정보를 보냅니다. DB2DataReader 오브젝트 내부 깊숙히 묻혀있다.

HasRows 및 FieldCount 속성이 모두 'False'및 '0'이므로 각각의 내장 메서드 (예 : .GetString (x), .GetValue (x))를 사용하여 데이터를 가져올 수 없습니다. ToString() 등). while (reader.Read()) 명령은 항상 (HasRows 속성으로 인해) false이기 때문에 결과를 반복 할 수 없습니다.

모든 종류의 DataReader를 사용하여 이런 문제가 발생했거나 일반적으로 제안이 있습니까?

답변

0

DB2 DataReader는 사용하기 가장 좋은 개체가 아닙니다. 대신이 메소드를 사용하여 데이터를 추출 할 수있는 것처럼 ExecuteNonQuery() 명령을 DB2Connection 객체 (C#)에서 호출했습니다.

관련 문제