2016-05-20 24 views
0

ユーザーは次のコードで日付を選択でき、日付はTextBoxに表示されます。SQL Serverのデフォルトの日付を1900年1月1日に削除します。

<asp:TextBox ID="dateTB" runat="server" /> 
<asp:ImageButton ID="ib" ImageUrl="/calendar.png" ImageAlign="Bottom" runat="server" /> 
<asp:CalendarExtender ID="Cal1" PopupButtonID="ib" runat="server" TargetControlID="dateTB" Format="MM/dd/yyyy"> 
</asp:CalendarExtender> 

その後、私はその日付をSQL Serverデータベースに保存しています。

問題:ユーザーが日付を入力しないと、SQL Serverは1900年1月1日を既定値として格納しています。

ユーザーは空の日付フィールドを残してからSQL Serverに1/1/1900を保存しないと、何ができますか?

私が試したこと:dateTBが空であることを確認するとどうなりますか?それが空の場合は、何かをしてデータベースに挿入します。

If (String.IsNullOrEmpty(dateTB.Text)) Then 
    ' do something with dateTB?? 
End If 

デフォルトの日付(1900年1月1日)の場合、1900年1月1日ではなく、nullを保存します。

+0

何が起こりますか? – codeMonger123

+0

私の質問を編集する – user1924249

+0

データベースにデータを挿入するために使用するコードを表示すると、私たちが手助けする方が簡単かもしれません。 –

答えて

0
  1. データベース列がNULLをサポートしていることを確認してください。
  2. 設定している値にVBコードがDBNullを渡していることを確認してください。

あなたは完全な例を持っていないので、私はあなたが日付値を格納するために使用しているVBコード内のフィールドがNULL可能ではないので、それはデフォルト値に設定取得されていることを推測しています。 null可能な型を使用してこれを修正できます。魔法の値を使用しないでください。 1/1/1900は正当な日付です。

関連する問題