ASP Classic 中的 If Not IsNull

2023-11-26

我对 asp 还很陌生,并且遇到了语法错误,如果可以的话,我希望得到帮助。

我有一个 ASP 页面,显示一个从 sql 中提取数据的表。大部分数据尚未填充,因此返回 NULL。有问题的数据类型是数字。我需要FormatNumber the rs当它不为空时,如果为空则不填充。

这就是我所拥有的

<%=If Not IsNull(rs("ContractValue")) Then FormatNumber(rs("ContractValue"),0) end if%>

但正如前面提到的,我遇到了语法错误。

我究竟做错了什么?


我建议不要使用IsNull()在这种情况下,但首先要回答有关语法错误的问题。

原因是<%= %>语法是简写

<% Response.Write %>

在经典 ASP 中。

因此,如果不使用速记方法编写,您实际上要做的是:

<% Response.Write If Not IsNull(rs("ContractValue")) Then FormatNumber(rs("ContractValue"),0) End If %>

这是不正确的语法,会触发Syntax Error.

要修复代码,请删除=来自<% %>标签,像这样;

<% If Not IsNull(rs("ContractValue")) Then Response.Write FormatNumber(rs("ContractValue"),0) End If %>

使用怎么样IsNull?

虽然这可以工作,但通常会产生奇怪的结果,因为 DBNull(取决于所使用的数据库)可以不同,并且通常与 VBScript 不同vbNull变体。

由于这一点以及 VBScript 不是强类型的事实,我发现使用简单的快速转换为字符串以避免空值然后检查有效数据很有用。

数字检查示例

Dim contractValue
contractValue = rs("ContractValue") & ""
If Len(contractValue) > 0 And IsNumeric(contractValue) Then contractValue = Clng(contractValue) Else contractValue = 0

您可以通过编写一段可重用的代码来进一步实现这一点IIf()这篇文章中解释了函数。

  • 如何在 Classic-ASP 的 VBScript 中执行单行 If 语句? (提及 by @TasosK在评论中)

像这样的东西;

Dim contractValue
contractValue = rs("ContractValue") & ""
contractValue = IIf(Len(contractValue) > 0 And IsNumeric(contractValue), contractValue, 0)

@Paul 提出了一个很好的观点关于参数的评估,在原始代码中可能会破坏

contractValue = IIf(Len(contractValue) > 0 And IsNumeric(contractValue), Clng(contractValue), 0)

because Clng(contractValue)无论结果是否正确都会被评估True or False。因此,任何格式都需要在之后进行,或者是更复杂的版本IIf()功能被构建。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP Classic 中的 If Not IsNull 的相关文章

  • 如果 vbs 脚本崩溃,请重新启动它

    我正在尝试制作一个 vb 脚本 如果它崩溃 它将重新启动另一个 vb 脚本 我搜索了又搜索 但我得到的只是如何重新启动程序 并且由于 vb 脚本是后台进程 因此当您在 Win32 Process 中搜索时它不起作用 这是我的代码 set S
  • 请求送达回执时,CDO 消息不会发送

    我正在用经典 ASP 编写一个应用程序 是的 请原谅我 它使用 Google Mail 发送电子邮件 我让它工作得很好 如下所示 Dim ObjSendMail Set ObjSendMail CreateObject CDO Messag
  • asp和iis 6.0从哪里获取其日期格式

    我发现了一个带有新网络服务器的小泡菜 我们有一个新的网络服务器 它显示的日期与我们旧的网络服务器不同 我们在 Windows Server 2003 的 IIS 6 0 上运行 asp 经典网页 我们以管理员身份登录并设置适当的区域设置 然
  • WScript.Shell.Exec - 从 stdout 读取输出

    我的 VBScript 不显示我执行的任何命令的结果 我知道命令被执行 但我想捕获结果 我已经测试了多种方法来执行此操作 例如以下方法 Const WshFinished 1 Const WshFailed 2 strCommand pin
  • 即使通过“打开或关闭 Windows 功能”安装 ASP 支持后,也无法在 Windows 10 上运行经典 ASP 页面

    我收到此错误 处理 URL 时服务器发生错误 请联系系统管理员 如果您是系统管理员 请点击here https learn microsoft com en us iis application frameworks running cla
  • 如何增加asp classic的请求接受限制

    我从java小程序向asp classic发送post请求 我在此请求中发送非常大的数据 即 csv 数据 当此请求中的字符数增加并超过 138000 时 asp 不接受该请求 java 小程序给出 500 错误 所以有人可以告诉我如何才能
  • Response.Buffer / Flush 似乎不起作用

    我有一个经典的 asp 页面 用户使用 Response Buffer True 和 Flush 在我的本地电脑上 这个页面运行得非常好 我已将该页面上传到我的网络服务器 但它不起作用 我唯一能够检查的是两台机器上 IIS 下的 ASP B
  • VBscript 以提升的权限运行 bat 文件

    这是我的bat文件 REG DELETE HKLM Software Microsoft Windows CurrentVersion WindowsUpdate v SusClientId f REG DELETE HKLM Softwa
  • 我对一些小概念感到困惑

    我对 VBscript 非常陌生 正在努力学习所有概念 在我的实践过程中 我一直有一个疑问 dim a b c set a CreateObject scripting filesystemobject initiate the file
  • 如何在远程机器上执行vbs文件

    如何在不使用 PsExec 的情况下执行位于同一域中的远程计算机上的 VBScript 我尝试了以下代码 但没有运气 Sub RunCommand strComputer Command Set objWMIService GetObjec
  • 尝试绑定到 AD 用户对象时出现错误 2147463168

    我正在 Windows 2012 不是 R2 并且无法升级 AD 环境上工作 当我使用管理员 非管理员 帐户从 vbscript 运行以下代码时 它运行完美 然而 当我以普通用户运行它时 我得到一个 2147463168 这似乎是一个绑定错
  • SQL服务器超时

    我的应用程序是在经典 asp 上开发的 但也使用 asp net 因为我正在将应用程序迁移到 Net 上 它使用 SQL Server 作为数据库并托管在 Windows Server 2003 上 现在的问题是应用程序在很长一段时间内继续
  • ZURB Foundation,以编程方式切换选项卡

    我使用 asp 与基础 有没有办法使用 JS 或 ASP 在一个选项卡之间切换到另一个选项卡 Link http foundation zurb com docs tabs php 简单选项卡 一个可能的解决方案是为选项卡链接分配一个 id
  • 使用 ASP 将参数传递给存储过程

    我正在尝试将一些参数传递给经典 ASP 中的 SQL 存储过程 我看过几篇关于此的帖子 不确定我做错了什么 因为我似乎没有看到我的差异 set conn CreateObject ADODB Connection conn open DSN
  • ASP.NET MVC 中的经典 ASP (C#)

    我有一个应用程序想要 最终 转换为 ASP NET MVC 我想要进行全面的服务升级 到 ASP NET 但想要使用当前的 ASP 内容来运行当前的功能 这样我就可以在对新框架进行增量升级的同时升级小部分 该站点严重依赖于不太成熟的 VB6
  • 在 C# 中转换 VbScript 函数(Right、Len、IsNumeric、CInt)

    同样 我在 VbScript 中得到了以下代码 您能建议一下 C 中的等效代码吗 Function GetNavID Title getNavID UCase Left Title InStr Title 1 End Function 我已
  • 使用 VBscript 检查计算机是否被锁定

    如何使用 VBscript 检查计算机是否已被锁定 我想在计算机锁定后停止应用程序运行 并在计算机解锁后再次运行它 您可以尝试检查是否存在logonui exe过程 如果找到它 则计算机已锁定或未登录 Function IsLocked s
  • 从 VBS 运行同一目录中的批处理文件

    我有一个 VBScript 应该运行 bat 或 vbs 文件 但它不起作用 它出现一个错误 指出无法找到该文件 无论我是否放入文件路径 我认为这并不重要 因为它位于同一目录中 所以我的问题是 如何从 VBScript 中启动 bat 文件
  • sql 查询的权限被拒绝

    我正在尝试通过经典的 asp 记录集执行以下查询 SQL Select P Name as P Name P Description as P Description from L PagePermission inner join A P
  • ADODB.Parameters 错误“800a0e7c”参数对象定义不正确。提供的信息不一致或不完整

    我主要是一名 PHP 开发人员 但我有一些旧的 ASP 我们以前的开发人员之一制作的它坏了 我不知道如何修复它 我们有一个程序 将一些变量发送到侦听器页面 该侦听器页面将该数据与 msSQL 数据库中的注册代码进行比较 然后让程序知道注册代

随机推荐

  • 如何解决“等待调试器”消息?

    我使用 SDK 2 2 将 HTC Comet 连接到 Eclipse 我进行了调试构建 应用程序未运行 尽管它确实安装在设备上 在设备上 我在 Comet 屏幕上看到此消息框 等待调试器应用程序 HunyDew 进程 com airvin
  • 非泛型 IEnumerable 和泛型 IEnumerable 之间有什么区别?

    很抱歉提出这样一个模糊的问题 但我一直在寻找一天中最好的部分 我读了一篇又一篇文章 这里还有很多问题 但就是找不到一个容易理解的答案 我 认为我 知道 IEnumerable 的用途 但我只是无法理解它用泛型类型参数定义时的含义 例如 IE
  • 如何将Lambda表达式转换为Sql?

    我正在开发一个小型框架来访问数据库 我想添加一个使用 lambda 表达式进行查询的功能 我该怎么做呢 public class TestModel public int Id get set public string Name get
  • 为什么 Wrap_Content 多次触发 BindView

    我正在开发一个带有 listView 的 Android 应用程序 并且正在对其进行优化 它在一个活动中使用自定义游标适配器 我注意到 bindview 为列表的每一行触发两次 在研究 BindView 和 NewView 方法时 我在一篇
  • 使用gerrit时,如何删除remotes标签?

    大家 我正在使用 gerrit 但遇到了一些问题 我创建了一个 v1 0 的标签 我现在想从本地和远程删除它 已完成操作 git tag d v1 0 git push origin refs tags v1 0 然后 我遇到了一个错误 r
  • 这个习语是Pythonic吗? (someBool 和“正确结果”或“错误结果”)

    我刚刚在一些开源Python中看到了这个习语 我被饮料噎住了 而不是 if isUp return Up else return Down or even return Up if isUp else Down 代码如下 return is
  • 在 Clojure 中解析 XML

    我是 clojure 新手 所以请耐心等待 我有一个如下所示的 XML
  • 如何在输入密码时将其转换为星号? [复制]

    这个问题在这里已经有答案了 Python 有没有一种方法可以将用户输入的字符转换为星号 就像在许多网站上看到的那样 例如 如果电子邮件用户被要求登录其帐户 则在输入密码时 密码不会显示为字符 而是显示为 每次单独划水后 没有任何时间滞后 如
  • Theano Dimshuffle 相当于 Google 的 TensorFlow 吗?

    我已经看到转置和重塑一起可以提供帮助 但我不知道如何使用 例如 暗淡洗牌 0 x 使用转置和重塑相当于什么 或者 还有更好的方法 谢谢 实现 Theano 的相关操作有三个dimshuffle在 TensorFlow 中 tf transp
  • ThreadLocal 和内存泄漏

    在多个帖子中都提到 不当使用ThreadLocal导致内存泄漏 我正在努力理解内存泄漏是如何发生的ThreadLocal 我想到的唯一场景如下 Web 服务器维护一个线程池 例如 用于 servlet 如果变量在这些线程中 则可能会造成内存
  • JavaScript 中的顺序函数调用

    我希望函数 A 完成执行 只有在函数 B 完成之后才开始执行 当我调用函数 A 然后调用函数 B 时 两者似乎同时执行 在函数 B 完成后 我想调用第三个函数 update dropdown 我的代码如下所示 function A for
  • 如何用纯C优雅地实现一系列不同类型版本的功能?

    我想编写几个仅参数类型不同的函数 我知道 C 有template很好地处理这个问题 虽然还不是很好 很少有编译器支持export关键字 并且查询该关键字是为了提高效率 举个简单的例子 我想要 template
  • 为什么我不应该将所有仅 PL/SQL 的 VARCHAR2 设为 32767 字节?

    或者我应该 标题的灵感来自于加里 迈尔斯 Gary Myers 在为什么 Oracle varchar2 有一个强制大小作为定义参数 考虑以下变量 declare database table column interfacing vari
  • 如何在 VB 和 C# 中从文件加载字体?

    我想从文件加载字体到我的 VB Form 程序中 例如 我的字体位于 exe 程序的同一文件夹中 我希望它保留为外部资源 我们可以替换该资源 以便它更改整个程序的字体 以下是如何在 C 中执行此操作的示例 System Drawing Te
  • 测试 Android IAP/应用内购买订阅

    我正在实现几个要在 Google Play 上启动的 Android 应用程序 它们都使用 Google IAP 自动续订订阅产品类型进行订阅 为了测试该应用程序 我执行了以下操作 已将二进制草案上传到 Google Play 但未发布 在
  • 具有 bash 可编程补全功能的条件尾随空格

    我正在创建一个函数来为我使用的命令提供可编程完成 在来自http www debian administration org articles 317 shell脚本的用法如下 script sh command command optio
  • JSON 中的反序列化和序列化是什么?

    我见过 JSON 中的术语 反序列化 和 序列化 他们的意思是什么 JSON 是一种对字符串中的对象进行编码的格式 序列化表示将对象转换为该字符串 and 反序列化是它的逆操作 转换字符串 gt 对象 当传输数据或将数据存储在文件中时 要求
  • 如何将 .exe 文件转换为 Windows 安装向导

    我正在通过 Tkinter 创建一个应用程序 制作完成后 我使用 pyinstaller 转换为 exe 文件 这很好 但我想让它更专业 就像我们从互联网下载任何应用程序并打开它一样 它会打开一个安装向导 其中包含许可协议以及所有文件的放置
  • 在 Mac OS X 编程时,是否有与 viewDidLoad 等效的方法? [复制]

    这个问题在这里已经有答案了 可能的重复 NSViewController 中的 viewDidLoad 我开始开发 iOS 应用程序 现在转向 Mac OS X 应用程序 我想知道 Mac OS X 中是否有类似 iOS 的 viewDid
  • ASP Classic 中的 If Not IsNull

    我对 asp 还很陌生 并且遇到了语法错误 如果可以的话 我希望得到帮助 我有一个 ASP 页面 显示一个从 sql 中提取数据的表 大部分数据尚未填充 因此返回 NULL 有问题的数据类型是数字 我需要FormatNumber the r