如何把asp多条件查询操作语句精简
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)。我设定了三种查询方式:第一种,输入查找内容,但没有选中日期的,第二种,没有输入查找内容,却有输入日期的,第三种,即有输入内容又有日期,我上面做了三种判断,防止有一条会被优先执行。请大家帮忙看看优化一下,记得有多重条件搜索是字串代入一条搜索语句就可以的。 展开
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 命令与用户进行交互