2010-11-18 2 views
2

VS2008 DataSets를 사용하여 데이터베이스에 연결하고 있습니다. (: 날짜 시간? 즉 형)C# (3.5) TableAdapter를 사용하여 null DateTime 값을 데이터베이스에 읽거나 쓰십시오.

MSDN Datasets이 절대적으로 상태 :

Null 허용 null이 구조는 현재 데이터 세트에서 지원되지 않는 데이터베이스 내의 테이블 중 하나가 널 (null)을 허용하는 날짜 시간 열이 포함되어 있습니다. TableAdapters에 대한 MSDN 사이트에서 그러나

는 TableAdaters이 nullable 형식을 지원할 수있는 상태 :

TableAdapters이 널 (NULL)와 T (T의) nullable 형식을 지원? nullable 형식에 대한 자세한 내용은 C#의 nullable 형식에 대한 자세한 내용은 Nullable 형식 사용 (C# 프로그래밍 가이드)을 참조하십시오.

혼란스러워!

DataSet 디자이너에서 'AllowDBNull = True'로 설정했지만 잘못된 DateTime (SELECT * FROM UDF)을 반환하는 TableAdapter 쿼리를 실행할 때마다 다음 예외가 발생합니다. "ArguementOutOfRangeException : Year , 월 및 일 매개 변수는 표현할 수없는 DateTime을 나타냅니다. "

내가 가진 한 가지 아이디어는 null 값을 올바르게 처리하기 위해 System.Object로 Column 유형을 변경 한 다음 내 자신의 코드에서 변환을 수행 할 수 있지만 여전히 동일한 예외가 발생합니다.

question은 쿼리가 반환 된 후에 null을 처리하는 방법을 제안하지만 쿼리를 반환 할 수는 없습니다.

데이터베이스에서 null을 처리 할 수있는 테이블에서 쿼리를 실행할 수 있도록 TableAdapter 및/또는 Dataset을 어떻게 수정할 수 있습니까?

+0

더 나은 쿼리를 보여줍니다. 그냥 일해야합니다. –

+0

쿼리가 작동한다고 생각합니다. 문제는 자동 생성 된 TableAdapter/Dataset으로 인해 NULL DateTime과 상호 운용되지 않으며 예외가 발생합니다. –

+0

아니요, 생성 된 데이터 테이블은 nullable 열을 잘 처리 할 수 ​​있습니다. –

답변

0

은 내가 찾은 해결책이가 사용하는 코드에서 일어날 필요가 일부 변환이 있음을 의미 문자열 값

SELECT to_char(NULL_DATE_FIELD,'dd/mm/yyyy HH24:MI:SS') FROM * 

에게 기대하는 TO_CHAR() 오라클 기능을 사용하여 테이블 어댑터를 이야기하는 것이 었습니다. 이상하지만!