2009-07-25 2 views
1

텍스트 상자가있는 웹 양식 (.aspx)이 있습니다. 내 사용자는 텍스트 상자에 값을 페르시아 날짜로 입력 할 수 있습니다. 내가해야 할 일은 texbox.text를 DateTime으로 변환하는 것입니다. 하지만 때때로 텍스트 상자에 텍스트가 없으므로이를 처리하고 null을 반환해야합니다.C#을 사용하여 DB에 DateTime 또는 DbNull을 보내는 방법?

내가 null을 반환 할 때 DB에 null (C#)을 삽입 할 수 있습니까?

+1

어떤 기술을 사용하고 있습니까? 데이터 세트? LINQ to SQL? 엔티티 프레임 워크? –

+0

프로그래밍 ADO.NET을 사용합니다. – odiseh

답변

4

모두가 데이터 액세스를하는 방식에 따라 다릅니다. 손으로?

만약 그렇다면; null을 전달하는 두 가지 일반적인 방법이있다 DateTime; 원래 DateTime.MinValue을 사용하여 null을 의미했습니다. 두 번째는 Nullable<DateTime> (일명 DateTime?)을 사용하여 날짜를 전달하는 것입니다. 그런 다음 DAL에이를 감지하고 DBNull.Value로 전환 :

LINQ - 투 - SQL로
if(someDate == DateTime.MinValue) { // or "== null" for Nullable<DateTime> 
    dateParam.Value = DBNull.Value; 
} else { 
    dateParm.Value = someDate; 
} 

Nullable<DateTime> 방법은 "그냥 작동"한다.

관련 문제