asp 多条件查询 求救

P207191 2008-03-23 06:41:40
问题是现在查询不出任何内容,请高手施教
<title>查询结果</title>
<%
week=trim(Request.Form("week"))
project=trim(Request.Form("project"))
pro=trim(Request.Form("pro"))
kind=trim(Request.Form("kind"))
des=trim(Request.Form("des"))
prin=trim(Request.Form("prin"))
dt=trim(Request.Form("dt"))
start=trim(Request.Form("start"))
endt=trim(Request.Form("endt"))
sql="select * from week where "

if dt=1 then
if week<>empty or len(week)>1 then
sql=sql&"week='"&week&"'"
end if
if project<>empty or len(project)>1 then
sql=sql&"and J_project='"&project&"'"
end if
if pro<>empty or len(pro)>1 then
sql=sql&"and J_pro='"&pro&"'"
end if
if kind<>empty or len(kind)>1 then
sql=sql&"and J_sort='"&kind&"'"
end if
if des<>empty or len(des)>1 then
sql=sql&"and J_des='"&des&"'"
end if
if prin<>empty or len(prin)>1 then
sql=sql&"and J_prin='"&prin&"'"
end if
else
if project<>empty or len(project)>1 then
sql=sql&"and J_project='"&project&"'"
end if
if pro<>empty or len(pro)>1 then
sql=sql&"and J_pro='"&pro&"'"
end if
if kind<>empty or len(kind)>1 then
sql=sql&"and J_sort='"&kind&"'"
end if
if des<>empty or len(des)>1 then
sql=sql&"and J_des='"&des&"'"
end if
if prin<>empty or len(prin)>1 then
sql=sql&"and J_prin='"&prin&"'"
end if
if start<>empty or len(start)>1 and endt<>empty then
sql=sql&"and year between #"&start&"# and #"&endt&"#"
end if
end if

Dim rs
Dim rs_numRows
Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = MM_conn_STRING
rs.Source =sql
rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 1
rs.Open()
rs_numRows = 0
%>
...全文
70 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
WoooXVi 2008-03-25
是不是没加空格,之类的哦

response.write出来先啊
回复
ITniao 2008-03-25
sql="select * from [week] where 1=1"

if dt=1 then
if week<>empty or len(week)>1 then
sql=sql&" and [week]='"&week&"' "
end if
回复
wahuti 2008-03-24
给一个作参考
if otype="姓名" then
sql="select * from NEWS where 姓名字段 Like '%"& key &"%' order by id desc"
elseif otype="学号" then
sql="select * from NEWS where 学号字段 Like '%"& key &"%' order by id desc"
else
end if
回复
P207191 2008-03-23
我现在明白了,我用的字段和sql保留字一样了,我说怎么没有任何提示(刚开始用的sql="select * from week where 1=1 ")就是没有任何结果出来,真是没有办法了;
但是现在好像还是不能彻底的解决问题啊,是不是这种写法是错误的呢,还有什么好的写法没有啊

我选择 dt=1用的是一组radio,选择第一个的话就是1 选择第二个就是2,所以只辨别一下是不是1;
回复
P207191 2008-03-23
得到各位的指教,我万分感动。正在试验中ing,谢谢
回复
cnchart 2008-03-23
SQL语句中的字段名或表名不要用sql的保留字,如果非要用,用括号括起来
回复
hookee 2008-03-23
dt 不等于1时sql会错
sql="select * from week where "
改成 sql="select * from [week] where 1=1 "
sql=sql&"week='"&week&"'"
改成 sql=sql&" and [week]='"&week&"'"
week是数字类型就 sql=sql&" and [week]=" & week
year改成[year]

回复
P207191 2008-03-23
谢谢你,我今天试了好多次都不成功,所以来求救了,一会就按照你的方法去做,看看能不能解决。
回复
苍白之月 2008-03-23
response.write sql

把SQL复制出来 直接用工具去查询 很容易找出问题所在
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-03-23 06:41
社区公告
暂无公告