2011-06-30 4 views
1

テキストボックスにバインドされたデータをでnullに空の文字列を変換する:それは開始日がある場合を除き、正常に動作します私は日付を入力するために使用されてLinqDataSourceコントロールからデータを取得しますFormViewコントロール内のテキストボックスを持っている

<SP:TextBox ID = "StartDate" 
      Type = "Date" 
      Runat = "server" 
      Text = '<%# Bind("StartDate", "{0:yyyy-MM-dd}") %>' /> 

データベースのNULL値。 StartDateのテキストボックスは空ですが、空のフィールドがデータベースに保存されると、NULL値の代わりに0001-01-01が格納されます。このシナリオを検出して空の文字列を保存する前にnull値にするにはどうすればよいですか?

答えて

4

ソリューションがNULL可能列のパラメータを追加し、trueにConvertEmptyStringToNullを設定することです:日付値を挿入しながらバックエンドで

<asp:LinqDataSource ID="LinqDataSource1" runat="server" 
    ContextTypeName="NullUpdateRepo.DatabaseLinqDataContext" EnableUpdate="True" 
    TableName="SampleTables" OnSelected="OnSelected" OnContextCreated="OnContextCreated"> 
    <UpdateParameters> 
     <asp:Parameter Name="firstname" Type="String" ConvertEmptyStringToNull="true" /> 
     <asp:Parameter Name="lastname" Type="String" ConvertEmptyStringToNull="true" /> 
    </UpdateParameters> 
</asp:LinqDataSource> 

http://connect.microsoft.com/VisualStudio/feedback/details/296161/linqdatasource-and-null-column-values

0

は次のように与える:

CASE WHEN StartDate='0001-01-01' THEN NULL ELSE StartDate END 

テーブルにNULLを格納します。