VB6-IIF(ISNULL(rs),“TRUE”,Replace())

VB6-IIF(ISNULL(rs),“TRUE”,Replace()),vb6,recordset,Vb6,Recordset,为什么我不能使用: rep8_bc = IIf(IsNull(rs(8)), "null", Replace(rs(8), "'", "''")) 上面写着“无效使用Null” 但如果我移除替换,那就是工作。然后得到错误,因为记录有一个撇号字符,所以我将代码改为: rep8_bc = "null" If IsNull(rs(8)) = False Then rep8_bc = Replace(rs(8), "'", "''") 或者这个: If IsNull(rs(8)) =

为什么我不能使用:

     rep8_bc = IIf(IsNull(rs(8)), "null", Replace(rs(8), "'", "''"))
上面写着“无效使用Null”

但如果我移除替换,那就是工作。然后得到错误,因为记录有一个撇号字符,所以我将代码改为:

 rep8_bc = "null"
 If IsNull(rs(8)) = False Then rep8_bc = Replace(rs(8), "'", "''")
或者这个:

 If IsNull(rs(8)) = False Then
     rep8_bc = Replace(rs(8), "'", "''")
 else
     rep8_bc = "null"
 end if

很可能编译器没有在IIF()语句中短路。编译器将其作为一个完整的station(两个值)返回。这就是你得到错误的地方。因此,分解成适当的条件语句是这里的关键。因此,你的答案已经实现了这一点。
进一步补充,IIF()的执行速度比IF-ELSE语句慢得多。

很可能编译器没有在IIF()语句中短路。编译器将其作为一个完整的station(两个值)返回。这就是你得到错误的地方。因此,分解成适当的条件语句是这里的关键。因此,你的答案已经实现了这一点。
进一步补充,IIF()的执行速度要比IF-ELSE语句慢得多。

那么您想实现什么呢?改用.Net;)我无法在我的系统上编译VB6,因为我没有安装工具。我不熟悉VB6的内联if语句。但是在mealright看来,语法还可以。。这太古老了P只是问,也许有人知道答案呵呵。。。XD那么您想实现什么?请改用.Net;)我无法在我的系统上编译VB6,因为我没有安装工具。我不熟悉VB6的内联if语句。但是在mealright看来,语法还可以。。这太古老了P只是问,也许有人知道答案呵呵。。。在我的答案中有两种跑步方式,哪一种更好?“1.插入空值,然后检查是否”,或“如果,否则”。。首先是为了保存我的线路。。。在您的情况下,单线IF和多线IF都保持相对相同的速度。除非在一个答案中有其他运算符(算术运算符等),而在另一个答案中没有。然后,带有附加数学运算符的IF语句似乎需要更多的时间/资源。正确,
IIf
不会短路(in或VB.Net)。在我的答案中有两种运行方式,哪一种更好?“1.插入空值,然后检查是否”,或“如果,否则”。。首先是为了保存我的线路。。。在您的情况下,单线IF和多线IF都保持相对相同的速度。除非在一个答案中有其他运算符(算术运算符等),而在另一个答案中没有。然后,带有附加数学运算符的IF语句似乎需要更多的时间/资源。正确,
IIf
不会短路(在或VB.Net中)。