为什么这个SQL字符串不起作用?

rockajone 2010-07-21 10:52:49
dim ifHS
ifHS=request.Form("ifHS")
YearMonth=request.QueryString("YearMonth")
YearMonth2=request.QueryString("YearMonth2")
Dfdate=request.QueryString("Dfdate")
Dfdate2=request.QueryString("Dfdate2")
Worker=request.QueryString("Worker")
MeterNumber=request.QueryString("MeterNumber")
strwhere=""
strwhere2=""
if len(YearMonth)>=6 then strwhere=" HsDate>='"&YearMonth&"'"
if len(YearMonth2)>=6 then
if strwhere<>"" then
strwhere=strwhere&" and HsDate<='"&YearMonth2&"'"
else
strwhere=" HsDate<='"&YearMonth2&"'"
end if
end if

if len(Dfdate)>=6 then strwhere=strwhere&" DianfuDate>='"&Dfdate&"'"
if len(Dfdate2)>=6 then
if strwhere<>"" then
strwhere=strwhere&" and DianfuDate<='"&Dfdate2&"'"
else
strwhere=" DianfuDate<='"&Dfdate2&"'"
end if
end if

if UserNumber<>0 then
if strwhere<>"" then
strwhere=strwhere&" and UserNumber='"&UserNumber&"'"
else
strwhere=" UserNumber='"&UserNumber&"'"
end if
else
UserNumber=""
end if

if Worker<>"" then
if strwhere<>"" then
strwhere=strwhere&" and Worker='"&Worker&"'"
else
strwhere=" Worker='"&Worker&"'"
end if
else
Worker=""
end if

if MeterNumber<>"" then
if strwhere<>"" then
strwhere=strwhere&" and MeterNumber='"&MeterNumber&"'"
else
strwhere=" MeterNumber='"&MeterNumber&"'"
end if
else
MeterNumber=""
end if

if ifHS=1 then
strwhere2="where HsDate<>''"
elseif ifHS=2 then
strwhere2="where HsDate=''"
end if


if strwhere<>"" then
sql="select * from cqdf where "&strwhere&" order by ID Desc"
sql2="select sum(Total) from cqdf where "&strwhere&" and HsDate<>''"
sql3="select sum(Total) from cqdf where "&strwhere
sql4="select sum(WAmount) from cqdf where "&strwhere&" and HsDate<>''"
sql5="select sum(WAmount) from cqdf where "&strwhere
sql6="select sum(Amount) from cqdf where "&strwhere&" and HsDate<>''"
sql7="select sum(Amount) from cqdf where "&strwhere
else
sql="select * from cqdf order by ID Desc"
sql2="select sum(Total) from cqdf where HsDate<>''"
sql3="select sum(Total) from cqdf "
sql4="select sum(WAmount) from cqdf where HsDate<>''"
sql5="select sum(WAmount) from cqdf "
sql6="select sum(Amount) from cqdf where HsDate<>''"
sql7="select sum(Amount) from cqdf "
end if
if strwhere2<>"" then
sql="select * from cqdf "&strwhere2&" order by ID Desc"
sql2="select sum(Total) from cqdf "&strwhere2
sql3="select sum(Total) from cqdf "&strwhere2
sql4="select sum(WAmount) from cqdf "&strwhere2
sql5="select sum(WAmount) from cqdf "&strwhere2
sql6="select sum(Amount) from cqdf "&strwhere2
sql7="select sum(Amount) from cqdf "&strwhere2
end if
%>

<select name="ifHS" id="ifHS">
<option value="0" >所有</option>
<option value="1" >已回收</option>
<option value="2" >未回收</option>
</select>

为什么strwhere2不起作用?而strwhere可以正常筛选?
...全文
108 点赞 收藏 12
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dogfish 2010-07-24
七楼写了。就是要request("xxx")就好了。虽然耗一丁点的资源。
回复
SNOYC 2010-07-24
如果不能确定用那个就直接写request()
回复
找出问题根由很简单的;


为什么strwhere2不起作用?而strwhere可以正常筛选?

只要你输出strwhere2的值,是否有值
如果没有,那么就输出ifHS=request.Form("ifHS")的值

这是作为一个程序员的最基本检测操作
回复
WOLFOX1 2010-07-23
,,,,,,,,,,,,,,,,,,,,
回复
boyd1985 2010-07-23
解决了啊。。。。

不过还是第一次看到这样的代码哦,不就是为了读取几个统计数据嘛,有必要写这么多sql变量?
回复
chenxuezhen_1 2010-07-23
[Quote=引用 7 楼 gzpepco 的回复:]
建议直接用request("xxxx")写法 无需区分post/get!
[/Quote]

I do agree
回复
gzpepco 2010-07-23
建议直接用request("xxxx")写法 无需区分post/get!
回复
rockajone 2010-07-22
找到原因了,request.form只接受post方式传递的数据,代码里是get...
回复
rockajone 2010-07-22
if strwhere2<>"" then
sql="select * from cqdf "&strwhere2&" order by ID Desc"
sql2="select sum(Total) from cqdf "&strwhere2
sql3="select sum(Total) from cqdf "&strwhere2
sql4="select sum(WAmount) from cqdf "&strwhere2
sql5="select sum(WAmount) from cqdf "&strwhere2
sql6="select sum(Amount) from cqdf "&strwhere2
sql7="select sum(Amount) from cqdf "&strwhere2
end if

是不是因为有2个form的原因?
回复
哪个SQL串???? 弄一大堆代码,却不用红色标记出来.
回复
rockajone 2010-07-21
是包含在<form action="cqdf.asp" method="get" name="form2"></form>里的,因为里面还有很多input所以没写全
回复
gentle_sword 2010-07-21
<select name="ifHS" id="ifHS">传值有问题
要用form表单将
<select name="ifHS" id="ifHS">
<option value="0" >所有</option>
<option value="1" >已回收</option>
<option value="2" >未回收</option>
</select>
包含在内才可以的。
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告