2017-09-28 10 views
1

データベースとデータセットに、日付列にNULL値が含まれている可能性があることを設定しました。ただし、プログラムが実行されると、常に日付列が入力されるように要求されます。エラーは次のとおりです。詳細ビューにヌル日付を挿入する方法

追加情報:SqlDateTimeがオーバーフローします。 1/1/1753 12:00:00 AMと12/31/9999 11:59:59 PMの間である必要があります。

<div>   
    <asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" AutoGenerateRows="False" DataKeyNames="IDREFUNDSELESAI" DataSourceID="RefundSelesaiObjectDataSource"> 
     <Fields>        
      <asp:BoundField DataField="TANGGAL" HeaderText="TANGGAL" SortExpression="TANGGAL" DataFormatString="{0:d}" /> 

<asp:ObjectDataSource ID="RefundSelesaiObjectDataSource" runat="server" SelectMethod="GetRefundSelesaiByIdRefund" TypeName="dms_mkph.bll.RefundSelesaiClass" DeleteMethod="DeleteRefundSelesai" InsertMethod="AddRefundSelesai" UpdateMethod="UpdateRefundSelesai" >   
    <DeleteParameters> 
     <asp:Parameter Name="idRefundSelesai" Type="Int32" /> 
    </DeleteParameters> 
    <InsertParameters> 
     <asp:Parameter Name="TANGGAL" Type="DateTime" /> 

bll.cs

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)] 
    public bool AddRefundSelesai(DateTime TANGGAL) 
    { 
     // Create a new ProductRow instance 
     RefundDataSet.REFUNDSELESAIDataTable dtRefundSelesai = new RefundDataSet.REFUNDSELESAIDataTable(); 
     RefundDataSet.REFUNDSELESAIRow rRefundSelesai = dtRefundSelesai.NewREFUNDSELESAIRow();     

     if (TANGGAL == null) rRefundSelesai.SetTANGGALNull(); else rRefundSelesai.TANGGAL = TANGGAL; 

答えて

0

DateTimeが値型で助けてくれてありがとう。値の型をnullにすることはできません。あなたはあなたに感謝

<asp:Parameter Name="TANGGAL" Type="DateTime?" ConvertEmptyStringToNull="True" /> 

public bool AddRefundSelesai(DateTime? TANGGAL) 
+0

を試してみてのNullable型の

を使用しない限り、まあ、あなたは「右再。私はAddRefundSelesai(DateTimeにDateTimeを変更する必要がありますか? – bazcava

関連する問題