关于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照样会执行