我遇到以下错误:
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作为后端。
答案 0 :(得分:2)
如果您的日期选择器中未选择日期,则您在ToString()
上呼叫DbSelectedDate
这是一个空字段。
将其拆分为两行,并在运行ToString()
答案 1 :(得分:1)
在将RadDatePicker.DbSelectedDate Property转换为字符串之前,您需要先检查{{3}}是否为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