如何把asp多条件查询操作语句精简

ifrequest("neirong")<>""andrequest("riqi1")=""thensql="select*fromrenyuanwhereid="&re... if request("neirong")<>"" and request("riqi1")=""then
sql="select * from renyuan where id="&request("id")&" and "&request("tiaojian")&"='"&request("neirong")&"'"
elseif request("neirong")="" and request("riqi1")<>"" and request("riqi2")<>"" then
sql="select * from renyuan where id="&request("id")&" and shengri between #"&request("riqi1")&"# and #"&request("riqi2")&"#"
elseif request("neirong")<>"" and request("riqi1")<>"" and request("riqi2")<>"" then
sql="select * from renyuan where id="&request("id")&" and "&request("tiaojian")&"='"&request("neirong")&"'and shengri between #"&request("riqi1")&"# and #"&request("riqi2")&"#"
end if

这是我的网页搜索代码,已经测试可行了, 但是感觉很繁琐 ,请大家帮忙看看,如何精简下。
数据库里有人员信息,搜索条件是部门(id),姓名或电话之类的条件(tiaojain),搜索内容(neirong),生日(riqi1,riqi2)。我设定了三种查询方式:第一种,输入查找内容,但没有选中日期的,第二种,没有输入查找内容,却有输入日期的,第三种,即有输入内容又有日期,我上面做了三种判断,防止有一条会被优先执行。请大家帮忙看看优化一下,记得有多重条件搜索是字串代入一条搜索语句就可以的。
展开
 我来答
注册到抓狂
推荐于2016-01-27 · TA获得超过654个赞
知道小有建树答主
回答量:1410
采纳率:72%
帮助的人:332万
展开全部

if request("neirong")<>"" and request("riqi1")=""then

sql="select * from renyuan where id="&request("id")&" and "&request("tiaojian")&"='"&request("neirong")&"'"

elseif request("neirong")="" and request("riqi1")<>"" and request("riqi2")<>"" then

sql="select * from renyuan where id="&request("id")&" and shengri between #"&request("riqi1")&"# and #"&request("riqi2")&"#"

elseif request("neirong")<>"" and request("riqi1")<>"" and request("riqi2")<>"" then

sql="select * from renyuan where id="&request("id")&" and "&request("tiaojian")&"='"&request("neirong")&"'and shengri between #"&request("riqi1")&"# and #"&request("riqi2")&"#"

end if

---------------------------------------------------------

搞的那么麻烦,,,

Dim TempNR,RQ1,RQ2,TempID,TempSQL,TempTJ
TempNR=Trim(Request.From("neirong"))
RQ1=Trim(Request.From("riqi1"))
RQ2=Trim(Request.From("riqi2"))
TempID=Trim(Request.From("ID"))
TempTJ=Trim(Request.From("tiaojian"))
TempSQL="select * from renyuan where ID="&TempID&""
If TempNR<>"" Then '内容不为空
    TempSQL=TempSQL&" AND "&TempTJ&"="&TempNR&""
End If
If RQ1<>"" And RQ2<>"" Then
    TempSQL=TempSQL&" AND shengri between #"&RQ1&"# AND #"&RQ2&"#"
End If
Response.Write TempSQL '输出SQL语句,检查一下是否符合需求.

那啥,下次,把自己的代码整理整理,,乱...

更多追问追答
追问
奇怪,看起来没问题,就是实际用的时候不行,access数据库字段都是文本类型,不知道有没有关系。模拟的时候,我得修改
TempNR=Request("neirong")
RQ1=Request("riqi1")
RQ2=Request("riqi2")
TempID=cint(request.form("id"))
TempTJ=Request("tiaojian")
成这样才能得到数据,有什么建议吗?
追答
那个,,,你的表单提交,没有设置模式.

使用 method="get" 的表单,用 Request.QueryString 命令与用户进行交互
使用 method="post" 的表单,用 Request.Form 命令与用户进行交互
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式