【问题标题】:Handling Null Reference in DatePicker在 DatePicker 中处理空引用
【发布时间】:2014-02-14 10:56:51
【问题描述】:

我遇到以下错误:

System.NullReferenceException:对象引用未设置为对象的实例。

我的编码是:

If (DirectCast(drv.Cells(4).FindControl("rdp_clsDate"), RadDatePicker).DbSelectedDate).ToString <> "" Then
    Dim ClsDate As Date = DirectCast(drv.Cells(4).FindControl("rdp_clsDate"), RadDatePicker).DbSelectedDate
    aa_ml.closeDate = ClsDate.ToString("dd/MM/yyyy")
Else
    aa_ml.closeDate = ""
End If

这里CloseDate 不是强制性的。所以我可以给,也可以不给。当我给出结束日期时,代码工作正常并且记录存储在表中。但是当我没有给出截止日期时,我无法运行该程序。调试时,执行停止在这一行

If (DirectCast(drv.Cells(4).FindControl("rdp_clsDate"), RadDatePicker).DbSelectedDate).ToString <> "" Then

我得到了上述错误。

如果我没有提供closedate,我该如何更改代码来处理这种情况?

我使用 oracle 作为后端。

【问题讨论】:

    标签: asp.net vb.net telerik


    【解决方案1】:

    如果您在日期选择器中未选择日期,则您在 DbSelectedDate 上调用 ToString(),这是一个空字段。

    将其分成两行并在运行ToString()之前添加一个null检查

    【讨论】:

    • 嗨,ekad,非常感谢。它运行良好。
    • 嗨,现在我不能问问题了。我该怎么办..请任何人指导我
    【解决方案2】:

    您需要先检查RadDatePicker.DbSelectedDate Property 是否为Nothing,然后再将其转换为字符串。试试这个代码

    Dim rdp_clsDate As RadDatePicker = DirectCast(drv.Cells(4).FindControl("rdp_clsDate"), RadDatePicker)
    If rdp_clsDate.DbSelectedDate IsNot Nothing AndAlso rdp_clsDate.DbSelectedDate.ToString() <> "" Then
        Dim ClsDate As Date = rdp_clsDate.DbSelectedDate
        aa_ml.closeDate = ClsDate.ToString("dd/MM/yyyy")
    Else
        aa_ml.closeDate = ""
    End If
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-25
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多