2010-03-29 62 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