我一直在试图解决这个问题。如果单元格为空,我会在DateRcvReal上不断收到错误消息。我正在通过使用<=比较两个字段,并且某些DateRcvReal是空单元格,它会为类型'Date'和类型'DBNull'引发运算符'<='的错误,我该如何解决这个问题。在VB.net上还是新手
If e.VisibleIndex > -1 And e.DataColumn.FieldName.StartsWith("DateProm") Then
If IsDate(CType(sender, ASPxGridView).GetRowValues(e.VisibleIndex, New String() {"DatePromReal"})) Then
If (CType(sender, ASPxGridView).GetRowValues(e.VisibleIndex, New String() {"DatePromReal"}) <= CType(sender, ASPxGridView).GetRowValues(e.VisibleIndex, New String() {"DateRcvReal"})) Then
e.Cell.BackColor = Drawing.ColorTranslator.FromHtml("#F42121")
e.Cell.ForeColor = Drawing.Color.White
End If
答案 0 :(得分:1)
尝试这不是isDBNULL函数
IF NOT IsDbNull((CType(sender, ASPxGridView).GetRowValues(e.VisibleIndex, New String() {"DatePromReal"})) AndAlso
(CType(sender, ASPxGridView).GetRowValues(e.VisibleIndex, New String() {"DatePromReal"}) <= CType(sender, ASPxGridView).GetRowValues(e.VisibleIndex, New String() {"DateRcvReal"})) Then
答案 1 :(得分:0)
最简单的方法是将您的代码放在try / catch块中,让它在错误的比较中抛出错误,然后在catch块中执行适当的操作(忽略错误,记录错误,投诉等)。
一种更好的方法是在使用单元格内容之前测试它们是否为空,并使用catch块来捕获真正的意外情况。
此外,请注意将布尔值与空字段进行比较。 VB对布尔值和null进行假设,因此认为null和false相等。
简而言之,在尝试将其与某些内容进行比较之前,请确保该单元格中有一个合理的值(不是null,不是空字符串,不是什么)。