蛙蛙推荐:asp中的多条件组合查询实现

原创 2004年07月12日 14:51:00

<!--
蛙蛙推荐:asp中的多条件组合查询实现
多条件组合查询在很多地方都很有用,本文用一个简单的例子来实现一种组合查询
在示例之前请确保你安装有sqlserver2000及其默认数据库NorhtWind.
代码非常直观,加上关键部分我做了注释,所以很容易理解.
需要注意的几个问题就是:
1.在字符串连接的时候注意两个需要连接的串中第二个串的开头第一个字符应该打一个空格,这样不至于两个串的首尾相连成一个单词.
2.righ的left函数取出的结构区分大小写,如果你字符串里用的是'and',而你判断的时候用的是'AND',程序就不会按你所想的运行了
3.注意JS中,history.go(-1),history.back(),location.reload,location.href的区别和实际应用
提醒大家平时多做一些数据结构和算法的训练,写程序基础很重要,不要小看一些字符串处理函数和正则表达式等的应用,好多大的项目正是由一些小函数组合在一起形成的.
-->
<%
If Trim(Request.Form("submit"))<>"" Then
 Dim arr_wawa,rs_wawa,strconn,sql
 Set rs_wawa=Server.CreateObject("ADODB.RecordSet")
 strconn="Driver={sql server};server=192.168.0.110;database=northwind;uid=sa;pwd=sa;"
 '获取表单变量,这里只过滤了空格,但在实际应用中为了安全,需要过滤更多的危险字符.
 EmployeeID=Trim(Request.Form("EmployeeID"))
 TitleOfcourtesy=Trim(Request.Form("TitleOfcourtesy"))
 FirstName=Trim(Request.Form("FirstName"))
 LastName=Trim(Request.Form("LastName"))
 Title=Trim(Request.Form("Title"))
 City=Trim(Request.Form("City"))
 '以下是动态生成一个sql查询字符串
 '*************************************
 sql="SELECT EmployeeID,TitleOfCourtesy,FirstName,LastName,Title,City FROM Employees WHERE"
 If EmployeeID<>"" Then sql=sql&" EmployeeID="&EmployeeID&" AND"
 If TitleOfCourtesy<>"" Then sql=sql&" TitleOfcourtesy='"&TitleOfCourtesy&"' AND"
 If FirstName<>"" Then sql=sql&" FirstName like '%"&FirstName&"%' AND"
 If LastName<>"" Then sql=sql&" LastName like '%"&LastName&"%' AND"
 If Title<>"" Then sql=sql&" Title like '%"&Title&"%' AND"
 If City<>"" Then sql=sql&" City like '%"&City&"%' AND"
 if right(sql,5)="WHERE" then sql=left(sql,clng(len(sql))-5) '解决所有参数都为空的情况
 if right(sql,3)="AND" then sql=left(sql,clng(len(sql))-3) '去掉参数最后的and
 sql=sql&" ORDER BY EmployeeID DESC"
 'Response.Write sql '调试语句
 '**************************************
 rs_wawa.Open sql,strconn,1,3
 If Not(rs_wawa.Eof And Rs_wawa.Bof) Then
  arr_wawa=rs_wawa.getrows() '取出离线的记录集,取出记录集随后就可以关闭记录集,可以节省资源
 Else
  Response.Write("<script>alert('没有记录');history.go(-1);</script>")
 End If
 rs_wawa.close()
 set rs_wawa=nothing
End if
%>
<form name="form1" method="post" action="">
  <table width="500" border="1" align="center" cellspacing="1">
    <tr>
      <td colspan="2" align="right"><div align="center">Search Employees</div></td>
    </tr>
    <tr>
      <td width="50%" align="right">EmployeeID:</td>
      <td width="50%"><input name="EmployeeID" type="text" id="EmployeeID"></td>
    </tr>
    <tr>
      <td width="50%" align="right">TitleOfCourtesy:</td>
      <td width="50%"><select name="TitleOfCourtesy" id="TitleOfCourtesy">
          <option value="">==select==</option>
    <option value="Ms.">Ms.</option>
          <option value="Dr.">Dr.</option>
          <option value="Mrs.">Mrs.</option>
        </select></td>
    </tr>
    <tr>
      <td width="50%" align="right">FirstName:</td>
      <td width="50%"><input name="FirstName" type="text" id="FirstName"></td>
    </tr>
    <tr>
      <td width="50%" align="right">LastName:</td>
      <td width="50%"><input name="LastName" type="text" id="LastName"></td>
    </tr>
    <tr>
      <td width="50%" align="right">Title:</td>
      <td width="50%"><input name="Title" type="text" id="Title"></td>
    </tr>
    <tr>
      <td width="50%" align="right">City:</td>
      <td width="50%"><input name="City" type="text" id="City"></td>
    </tr>
    <tr>
      <td width="50%" align="right">
<input type="submit" name="Submit" value="提交"></td>
      <td width="50%">
<input type="reset" name="Submit2" value="重置"></td>
    </tr>
  </table>
</form>
<%
If Trim(Request.Form("submit"))<>"" Then
 Response.Write("<table width='100%' border='0' cellspacing='1'>")
 Dim i,j,Rows,Flds
 Rows=Ubound(arr_wawa,2)
 Flds=Ubound(arr_wawa,1)
 If Rows>=0 Then
 For i=0 To Rows
  Response.Write("<tr>")
  For j=0 to Flds
   Response.Write"<td>"&arr_wawa(j,i)&"</td>"
  Next
  Response.Write("</tr>")
 Next
 Else
 Response.Write("<tr><td>"&Rows&"</td></tr>")
 End If
 Response.Write("</table>")
End If
%>

Linq 多条件查询组合问题

借助老外写的一个扩展表达式的类,可以把上篇中的代码写得更优雅 这是PredicateBuilder的源文件 public static class PredicateBuilder { ...
  • kongwei521
  • kongwei521
  • 2014年05月27日 13:57
  • 1956

asp sql两表连接查询

懂的sql语句就可以快速查找出我们需要的数据,不然就要嵌套一层又一层,以前很少用连接语句来查询数据,经常要建立俩个rrs记录集,这样其实效率也...
  • eadio
  • eadio
  • 2014年03月18日 17:14
  • 1208

Mybatis的if test字符串比较问题,mapper用等于又要用>比较<比较解决冲突

第一种解决方法: and msg.expire_time < now() 会报NumberFormatException,这样就可以了。 and msg.expire_time < ...
  • chenaini119
  • chenaini119
  • 2016年07月15日 14:07
  • 19245

ASP.NET比较常用的26个性能优化技巧

本篇文章主要介绍了”ASP.NET中常用的26个优化性能方法”,主要涉及到ASP.NET中常用的26个优化性能方法方面的内容,对于ASP.NET中常用的26个优化性能方法感兴趣的同学可以参考一下。1....
  • WuLex
  • WuLex
  • 2016年08月21日 12:41
  • 2545

lucene利用BooleanQuery进行多个Query组合查询

lucene3.0中BooleanQuery 实现与或的复合搜索 .  BooleanClause用于表示布尔查询子句关系的类,包括:BooleanClause.Occur.MUST,Boolean...
  • earbao
  • earbao
  • 2014年12月01日 17:12
  • 5929

【牛腩】asp分页(有条件查询,涉及多表查询)

asp.net多表有条件分页
  • sds15732622190
  • sds15732622190
  • 2016年05月05日 18:39
  • 841

ASP.NET比较常用技巧

 1. 数据库访问性能优化  数据库的连接和关闭 访问数据库资源需要创建连接、打开连接和关闭连接几个操作。这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源。ASP.NE...
  • Andrewniu
  • Andrewniu
  • 2016年10月08日 13:30
  • 1969

MyBatis 判断条件为等于的问题

在用MyBatis操作数据库的时候相信很多人都用到,当在判断null, 大于,大于等于,小于,小于等于,不等于时估计很多都用到,比较容易实现了,这里就省略了,但唯独判断条件为等于时估计蛮多人遇到坑了,...
  • shenzhenNBA
  • shenzhenNBA
  • 2015年06月28日 21:56
  • 40753

在用java 对hbase多条件组合查询过程中遇到的坎坷

最近公司的数据部门提出了要做大数据分析的需求,大数据方确定数据储存在hbase中,java工程师进行调用展示。我作为一个java工程师,觉得这很easy,不就是展示一个非关系型数据库的数据吗?当时我还...
  • sunliyang1992
  • sunliyang1992
  • 2017年05月18日 11:47
  • 597

hibernate的多条件动态查询(非常实用)

在hibernate中是支持多条件动态查询的。这种问题是非常实用的。比如说你做一个项目要实现一个复合查询。 例如有这么一个界面: 那么要实现这个查询,对于用户来说他的查询条件可能不健全。有可能只...
  • ycy123ycy
  • ycy123ycy
  • 2013年08月18日 10:19
  • 3944
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:蛙蛙推荐:asp中的多条件组合查询实现
举报原因:
原因补充:

(最多只允许输入30个字)