读书人

对于iif的奇怪现象

发布时间: 2011-12-20 22:26:41 作者: rapoo

关于iif的奇怪现象
If dt.Rows(0).Item(0) Is DBNull.Value Then
Me.txtID.Text = 1
Else
Me.txtID.Text = dt.Rows(0).Item(0) + 1
End If


Me.txtID.Text = IIf(dt.Rows(0).Item(0) Is DBNull.Value, 1, dt.Row(0).
Item(0) + 1)

为什么在有些时候使用iif代替if else 会出现dbnull不能加1的错误

[解决办法]
IIf 会先把后面的值求出来

即使dt.Rows(0).Item(0) Is DBNull.Value,也会先计算dt.Row(0).Item(0) + 1


*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

最新版本:20070212

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
[解决办法]
同上
调用IIf函数,参数都会计算一遍
比如
If I <> 0
J = 1 / I
Else
J = 0
EndIf

如果换成IIf就出错了
J = IIf(I <> 0, 1 / I, 0);

如果I为0,1 / I照样会执行

读书人网 >VB Dotnet

热点推荐