2010-03-29 72 views
-1

下面的ASP代码在'Dim MonthNum = Month(“Ctxtdatefrom”)''有一些错误' 可以帮助解决这个问题。ASP代码中的错误

If session("cmbLeaveType")=2 then 

    set rs2 = objconn.execute("select * form Particulars where empid='" & session("empid") & "'") 

    if Nationality = ABC then 

     Dim MonthNum=Month("Ctxtdatefrom") 
     Dim MonthNum2=Month("ctxtdateto") 

     If(MonthNum=5 and monthnum2=5) 
      if tdays>1 then 

      else 
       set rs = objconn.execute("insert into leavebank (empid, datesubmit, datefrom, dateto.... 
      END IF 
     END IF 
    END IF 
END IF 

如果国籍是 “国家A”,离开数量允许取第5个月是1

如果(MonthNum = 5和monthnum2 = 5)

如果tdays> 1,则

- >能否请您纠正

+2

您将需要更改并重新格式化您的问题以获得任何良好答案。 1)用4个空格缩进代码。 2)清楚地说明你的问题是什么(有些错误不清楚)3)在你的问题中加入一个问号。 – Marek 2010-03-29 05:52:50

+0

此外,我们需要有关所有变量的数据类型的信息......否则我们不知道“X = ABC”是否因铸造或因为缺少引号而无法工作...... – Doug 2010-03-29 05:57:17

+0

此代码将容易受到攻击以sql注入 – 2011-12-01 02:38:42

回答

1

我猜你看到这样的错误:

Microsoft VBScript compilation error '800a0401' 

Expected end of statement 

/test.asp, line 11 

Dim MonthNum = Month("Ctxtdatefrom") 
-------------^ 

此错误正在抛出,因为您无法在VBScript中调暗并分配一行。

如果重写到:

Dim MonthNum 
MonthNum = Month("Ctxtdatefrom") 

你会更接近你的目标 - 尽管你会那么几乎可以肯定击中另一个错误 - 你在一个月函数调用不会做你认为它。

通过用双引号将变量Ctxtdatefrom包装在一起,您实际上将包含值Ctxtdatefrom的文字字符串传递给VBScript月份函数。

你想要做的是:

Dim MonthNum 
MonthNum = Month(Ctxtdatefrom) 

这应该工作,只要变量包含有效的VBScript日期格式。

你可以找到一些阅读here

上面说的 - 基于你的代码,你几乎肯定会看到更多的错误,我建议你找一个能够在ASP classic和VBScript中指导你的人,阅读一些在线教程或者采取一步一个时间和帖子详细和具体的问题在这里。

+0

+1为好描述和一些教育.. – 2010-03-29 07:41:59