2010-04-08 3 views
3

현재 프로젝트에서 사용하고있는 XSD 데이터 집합 매핑 문제가 있습니다. 우리는 일부 데이터 추상화 (매개 변수가있는 SQL 또는 StoredProc를 사용하는 것보다 빠르며 논쟁의 여지가 있지만 유지 보수가 용이함) 및 XSD를 사용하고 있습니다 (VS 개발 환경에서 실행 중). Oracle 데이터베이스가있는 XSD 데이터 집합

그러나, 사전 제작에 우리가 우리의 테스트에 사용할 서버는 XSD를 제대로 작동하지 않는 : 일부 메소드 호출은 다음과 같은 오류와 함께 실패합니다

System.ArgumentException: Value does not fall within the expected range. 
at Oracle.DataAccess.Client.OracleParameter.set_DbType(DbType value) 

사람이 그 어느 때이 문제가 발생 했습니까? 호출되는 메소드는 1-3 매개 변수를 사용하는 단순 select 문이며, 전에 말한 것처럼 내 컴퓨터에서 정상적으로 작동합니다.

답변

1

우리는 에 Oracle.DataAccess.Client의 System.Data.OracleClient를 사용하는도 (XSD의) 우리의 데이터 세트를 변환 한 후이 문제를 건너 왔어요.

데이터 세트 디자이너가 ProviderType의 데이터 유형으로 "Number"을 계속 사용하고있는 것이 문제였습니다. Oracle은 "Number"데이터 유형을 지원하지 않습니다. 각 테이블 어댑터의 각 데이터 세트에서 ProviderType을 변경하고 테이블 어댑터의 모든 쿼리에 대해 각 매개 변수 컬렉션을 변경해야했습니다. ProviderType에 대해 "Decimal"을 사용 했으므로 제대로 작동하는 것 같습니다. 자동 생성 된 "선택", "업데이트"및 "삭제"쿼리도 확인하는 것을 잊지 마십시오.

누군가가 도움이되기를 바랍니다.

+0

이것은 ODP.NET ('Oracle.ManagedDataAccess.Client')을 사용하여 저에게 효과적 이었지만'DbType = "VarNumeric"'에서'DbType = "Decimal"로 참조를 변경해야했습니다. –