2008-11-12 7 views
1

데이터베이스에 null 입력 가능 날짜가 있습니다. LinqDataSource를 사용하여 연결하고 FormView를 사용하여 바인딩합니다. 그것은 날짜를 잘 배치 할 수 있지만 날짜를 제거하면 null 값을 db에 삽입해야합니다. 대신 예외가 발생합니다. 당신이 그것에 날짜를 배치하면null로 Asp.net 날짜 바인딩 문제

<asp:TextBox ID="TxtStartDate" runat="server" 
        Text='<%# Bind("StartDate", "{0:MM/dd/yyyy}") %>' /> 

는 잘 작동하지만 당신은 그것의 날짜를 삭제하고 저장하면, 당신은 System.Data.SqlTypes.SqlTypeException를 얻을 : SqlDateTime 오버 플로우를. 1/1/1753 12:00:00 AM과 12/31/9999 오후 11:59:59 사이 여야합니다. null을 보내는 방법은 무엇입니까?

답변

2

그것이 가장 좋은 방법이라면 나도 몰라,하지만 난 FormView의 업데이트 이벤트에 가입하여 고정하고 다음 코드 위치 :

object o = e.NewValues["StartDate"]; 
    if (o.ToString() == "") 
     e.NewValues["StartDate"] = null;