首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

对于iif的奇怪现象

2011-12-20 
关于iif的奇怪现象Ifdt.Rows(0).Item(0)IsDBNull.ValueThenMe.txtID.Text1ElseMe.txtID.Textdt.Rows(0).

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

热点排行