2017-09-28 1 views
1

J'ai configuré dans la base de données et l'ensemble de données que la colonne de date peut contenir une valeur nulle. cependant, lorsque le programme s'exécute, il demande toujours que la colonne de date soit remplie. L'erreur est la suivante:comment insérer une date nulle dans la vue détaillée

Informations supplémentaires: SqlDateTime débordement. Doit être compris entre 1/1/1753 12:00:00 AM et 31/12/9999 23:59:59.

<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; 

Nous vous remercions de l'aide

Répondre

0

DateTime est un type de valeur. Les types de valeur ne peuvent pas être null. Eh bien, sauf si vous utilisez le type Nullable

Essayez

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

et

public bool AddRefundSelesai(DateTime? TANGGAL) 
+0

Merci, vous avez raison. J'ai besoin de changer AddRefundSelesai (DateTime to DateTime? – bazcava