我只有在String不为null或为空时才有解析Date Field的代码但是我得到以下异常
从字符串“”到“日期”类型的转换无效。
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.InvalidCastException:从字符串“”到“Date”类型的转换无效。
来源错误:
Line 29:
Line 30: If (Not String.IsNullOrEmpty(last_login)) Then
Line 31: If String.Format("{0:MM/dd/yy H:mm:ss}", last_login) < Now.AddMinutes(-5) Then
Line 32: Return "height:100%;width:100% ;background-color:#FF0000;font-weight: bold; color: #000000"
Line 33: Else
有人请解释一下吗?
答案 0 :(得分:6)
" "
不是空字符串。 (里面有一个空间。)也许你应该拨打.Trim()
:
last_login != null && last_login.Trim().Length > 0
或者,如果您使用的是.NET 4,IsNullOrWhitespace
甚至更好:
string.IsNullOrWhitespace(last_login)
已编辑,感谢@Anthony和@Joel。
答案 1 :(得分:3)
这是一团糟。您正尝试在字符串上使用日期格式符号,以生成字符串,以与日期进行比较。
让我们试试吧。
Dim dLast As DateTime
If ((Not last_login Is Nothing) AndAlso DateTime.TryParse(last_login.Trim(), dLast)) Then
If (dLast < Now.AddMinutes(-5)) Then
Return "height:100%;width:100% ;background-color:#FF0000;font-weight: bold; color: #000000"
End If
End If
编辑:在访问之前检查null
字符串。
答案 2 :(得分:1)
您似乎需要String.IsNullOrWhiteSpace()
。我在引号内看到一个空格字符。
答案 3 :(得分:1)
.TryParse可以使用string = nothing
Dim dLast As DateTime
If DateTime.TryParse(last_login, dLast) Then
If (dLast < Now.AddMinutes(-5)) Then
Return "height:100%;width:100% ;background-color:#FF0000;font-weight: bold; color: #000000"
End If
End If
答案 4 :(得分:0)
“”是一个空格,既不是空也不是空。您可以先修剪()字符串,然后检查null,Empty或Length == 0。
答案 5 :(得分:0)
它不为null或为空。这是一个空间。你可以尝试修剪它。