2009-08-29 1 views

답변

12

여기에는 3 가지 방법이 있습니다. 당신이 얘기하는 경우 (당신이 데이터 판독기에서 가져올로 아마도)

  • 에 대한 object, 다음 DBNull.Value는 null를 나타낼 수 있습니다. 나는 데이터 계층에서이 문제를 풀어주지는 않지만, .NET 1.1 히스토리로 인해
  • 이기 때문에 DateTime.MinValue은 일반적으로 null으로 해석됩니다. 마법의 숫자 일 수도 있지만 - 대부분의 데이터 바인딩 등에서 작동하며 지원됩니다.
  • in .NET 2.0, Nullable<T>DateTime?을 사용할 수 있음을 의미합니다. 즉, nullable of DateTime을 사용할 수 있습니다. DateTime?을 사용하십시오. DateTime은 null 일 수 있으며, null 또는 유효한 DateTime의 값을 지정할 수 있습니다.

데이터 액세스 및 널 (null)에 대한 몇 가지 다른 생각 :

  • 것은 SqlCommand 당신 해야 사용 DBNull.Value에 전달하지 null - 데이터 판독기에서 읽을 때
  • 아래 참조 내가 확인하는 경향이있다 reader.IsDbNull(ordinal)

명령 항목 (예 : Nullable<T>)) :

param.Value = when.HasValue ? (object)when.Value : DBNull.Value; 
+0

마크, 고마워. – odiseh

3

사용 DateTime?

당신은 구체적으로 어떤 문제가 있습니까?

- 편집은 분명 너무

은, 그건 Nullable DateTime 개체가 아닌 질문 :

DateTime? t = null; 

이다 -,

댓글에 응답 편집과 같이 그것을 확인 :

DateTime? theTime; 

if(table["TheColumn"] == DBNull.Value){ 
    theTime = null; 
} else { 
    theTime = (DateTime) table["TheColumn"]; 
} 
+0

개체 (DataRow 열)를 DateTime으로 캐스팅 할 수 없습니다. – odiseh

+0

편집을 통해 응답했습니다. 'DBNull.Value'와 같은지 확인하기 만하면됩니다. –

+0

오 찾아 주셔서 감사합니다. – odiseh

관련 문제