例如,
Dim Test as Guid
Test = IIf(IsDBNull(DataReader("ID")), Guid.Empty, DataReader("ID"))
他们造成了错误 - “无法识别的guid格式”
我试图做下面的陈述
If(IsDBull(DataReader("ID")) Then
Test = Guid.Emtpy
Else
Test = DataReader("ID")
End If
它对我有用。
4.0框架是否存在处理空guid值或非空guid值的IIf方法的问题?
答案 0 :(得分:0)
从逻辑上讲,您的代码是相同的,并且应该以两种方式工作。 是的,我认为它是版本4.0中的一个问题 但你也尝试这种方式
Signal
答案 1 :(得分:0)
IIf函数不使用短路评估,它总是评估它的所有三个参数。这意味着,即使IsDBNull(DataReader("ID"))
等于true,仍然会评估DataReader("ID")
并且可能导致错误。
自从VB.Net出现以来,情况至少就是如此,所以它不是框架问题。