关于线上检索的一个问题,很古怪,也很急,很头疼

oldgameman 2001-03-01 09:54:00
那你知道如何用ADO的FIND方法来查询数据,并且与和或同时起作用?
就好比我同时输入两个查询条件,筛选出来的数据比只输入一个查询关键字要少.比较好的查询方法是?
主要是我想做线上图书馆检索功能.就是同时输入多个查询关键字可以缩小筛选范围,而且可以允许输入文本框为空的那种.我的一个解决方法是:
<%

cond_count = 1
if len(Request.Form("id")) = 0 then cond_count = cond_count - 1



'
sqlstr = "SELECT * FROM BOOK WHERE 书籍编号='"
if len(Request.form("id")) > 0 then
sqlstr = sqlstr & Request.Form ("id") & "'"
if cond_count > 1 then
sqlstr = sqlstr & " and "
cond_count = cond_count - 1
end if
end if

if len(Request.Form("bookname")) > 0 then
sqlstr = sqlstr & "书名 =" & Request.Form ("bookname") & "'"
IF cond_count > 1 then
sqlstr = sqlstr & " and "
cond_count = cond_count - 1
end if
end if

但是由于其中SQL语言的分割,拼接出错,请问有没有什么好的方法拜托各位!ADO的FIND方法也可以!
...全文
66 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tripofdream 2001-03-02
  • 打赏
  • 举报
回复
<%
sqlstr = "SELECT * FROM BOOK WHERE 1=1 "
if len(Request.form("id")) > 0 then
sqlstr = sqlstr &" and 書籍編號='" & Request.Form ("id") & "'"end if
end if

if len(Request.Form("bookname")) > 0 then
sqlstr = sqlstr & " and 書名=" & Request.Form ("bookname") & "'"
end if
%>
就是加了一個"1=1",這是一個恆等式﹐不會改變查詢條件。
tripofdream 2001-03-02
  • 打赏
  • 举报
回复
哈哈﹐這我也碰到過類似的情況﹐不過我小小的騙了一下SQL,你可以這樣寫﹕
<%

cond_count = 1
if len(Request.Form("id")) = 0 then cond_count = cond_count - 1



'
sqlstr = "SELECT * FROM BOOK WHERE 1=1 "书籍编号='"
if len(Request.form("id")) > 0 then
sqlstr = sqlstr &" and 書籍編號='" & Request.Form ("id") & "'"
if cond_count > 1 then
sqlstr = sqlstr & " and "
cond_count = cond_count - 1
end if
end if

if len(Request.Form("bookname")) > 0 then
sqlstr = sqlstr & "書名=" & Request.Form ("bookname") & "'"
IF cond_count > 1 then
sqlstr = sqlstr & " and "
cond_count = cond_count - 1
end if
end if
%>
就是加了一個"1=1",這是一個恆等式﹐不會改變查詢條件。

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧