我在asp中有一個窗體,帶有兩個文本框。如果用戶在其中輸入值並提交,則會顯示來自用戶所選日期的MS訪問查詢的數據。如果用戶只是將兩個文本框留空,我想顯示數據庫的完整輸出。
這是在訪問我的樣本查詢:asp或ado命令對象中的空參數
select column_date, field1, field2, sum(field3) from table1
where field1 like '*xyz' and
column_date between [@startdate] and [@enddate]
group by column_date, field1, field2
我的ASP代碼類似如下:
objCmd.CommandText = "Query"
objCmd.CommandType = adCmdStoredProc
Set objParam = objCmd.CreateParameter("@startdate" , adInteger, adParamInput, 0, 0)
objCmd.Parameters.Append objParam
Set objParam = objCmd.CreateParameter("@enddate" , adInteger, adParamInput, 0, 0)
objCmd.Parameters.Append objParam
if request.form ("startdate") = "" Then
objCmd.Parameters ("@startdate") = 1
Else
objCmd.Parameters("@startdate") = request.form("startdate")
objCmd.Parameters("@enddate") = request.form("enddate")
End if
if request.form ("enddate") = "" Then
objCmd.Parameters ("@enddate") = 31
Else
objCmd.Parameters("@startdate") = request.form("startdate")
objCmd.Parameters("@enddate") = request.form("enddate")
End if
................
請注意我的開始日期和enddates是文本數據類型與只是數字如1,2,3,4,5(1表示2012年7月1日,2表示2012年7月2日)
我有兩個文本框名稱「startdate」和「enddate」。當用戶在框中輸入日期時,它會在查詢中的兩個日期之間返回數據。如果用戶留空,則顯示錯誤。
但我想確保用戶是否將兩個文本框留空,它將返回查詢中的所有值。如果用戶在兩個文本框中的任何一個文本框中輸入單個值,它應該僅返回該日期的數據。
我不知道我該如何實現它。
@ Remou,謝謝。你是對的。你有我。但我不確定你想讓我把你的代碼放在「1到31之間」,「全部」。 – user1449596 2012-07-13 21:01:25
我建議你在進入sql之前進行處理,然後分配值。 – Fionnuala 2012-07-13 21:02:51
很多謝謝@remou。我只是跟着你的僞代碼 – user1449596 2012-07-13 21:34:21