将HTML表单日期传递给VB变量以进行SQL插入

时间:2014-12-05 18:10:18

标签: html sql forms date asp-classic

好吧,我有这个简单的ASP页面(summary.asp) - 参见代码:

<HTML>
<body>

<form action = "Summary.asp" method="post">
Select A day: <input type ="date" name = "selectedDate" />
<input type="submit" value = "Submit"/>
</form>

<%    
Dim SelectedDate
Set SelectedDate = Date
SelectedDate=Request.Form("selectedDate")

之后我想使用选择的日期作为SQL查询的一部分:

IF SelectedDate<>"" THEN
SQL = "select LOCATION_NAME, [Product Code], sum(SalesQuantity) As Units from [Sales Data] where   EventEndDate = convert(date, getdate()) Group by  [Product Code],LOCATION_NAME"
...
End IF
%>

我打算替换&#34;转换(date,getdate())&#34;在表单中选择日期。

我还没有到达将表单中的日期插入SQL字符串的部分。我知道HTML表单的日期格式是正确的SQL格式(yyyy-mm-dd),但看起来VB不喜欢这种格式作为日期?也许我只是缺少一些东西,但任何帮助都会受到赞赏。

谢谢......希望它有意义。

1 个答案:

答案 0 :(得分:0)

从我可以告诉你的主要问题是你试图明确声明你的SelectedDate类型。不要这样做。在VBScript中,所有变量都是variant类型,因此您无需声明其类型。所以你可以删除这一行:

Set SelectedDate = Date

之后,将CDate像这样

的字符串拼凑起来应该是一件简单的事情
SelectedDate = CDate(Request.Form("selectedDate"))

然后对于您的SQL行,您可以像这样添加它

SQL = "select LOCATION_NAME, [Product Code], sum(SalesQuantity) As Units " &_
        "from [Sales Data] where EventEndDate = " &_
        SelectedDate  &_
        " Group by  [Product Code],LOCATION_NAME"

另外请注意参数化查询,因为这种格式对于SQL注入攻击来说已经成熟。