VBScript返回错误“名称已重新定义”

J86*_*J86 4 vbscript

我有一个警报框,如果我当前正在测试数据库中,那么我希望该警报框与实时数据库相比具有不同的文本。

因此,我声明了一个名为的变量isTestDb并将其设置为True,但我不断收到此烦人的错误:

Microsoft VBScript compilation error '800a0411'

Name redefined

myfiles/conn_open.asp, line 12

Dim isTestDb
----^
Run Code Online (Sandbox Code Playgroud)

这是我的简单代码,它位于包含在包含中的代码,其级别比我进行条件检查的级别高得多,我假设这不是问题。

Dim isTestDb

isTestDb = True


-- Much Later in another file somehwere

If isTestDb Then
    Response.Write("<h1>It is set to True</h1>")
    Response.End
Else
    Response.Write("<h1>It is set to False</h1>")
    Response.End
End If
Run Code Online (Sandbox Code Playgroud)

我已经检查了所有工作目录,并且确定该变量未在其他位置设置相同的名称,甚至为变量尝试了不同的名称,并得到了完全相同的错误。

小智 5

发生这种情况是因为该变量isTestDb已在另一个页面中定义。


rda*_*ans 5

就我而言,这是由于我在.asp文件中使用以下方式两次引用了同一文件:

<!--#include file="myFile.asp">
Run Code Online (Sandbox Code Playgroud)

并且引用的文件中包含声明,因此第二个声明与第一个声明冲突


J86*_*J86 2

我不知道为什么,但是当我删除这条Dim isTestDb线时,现在一切都按预期工作了!:/

  • 总的来说,我强烈建议不要编写没有“Option Explicit”的 VB 代码。除此之外,在不查看整个代码的情况下很难确定,但错误肯定是在您这边,而不是在 VBS 那边。 (4认同)
  • 这是因为您包含的文件 conn_open.asp 中也有一个 Dim (3认同)
  • VB 方言不区分大小写,也许您因此错过了原始声明? (2认同)