zoukankan      html  css  js  c++  java
  • ASP搜索查询

    html code:

    1 <form name="frm_Search" method="get" action="Search.asp">
    2        请输入关键字: 
    3        <input type="text" name="key" size="10">
    4        <input type="submit" value="搜索">
    5     </form>

    asp.net code

     1 <!--搜索开始-->
     2             <%
     3     Dim strProvider,CNN
     4         'strProvider="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
     5         'strProvider=strProvider & Server.MapPath("") & "datadb_Sample.mdb"  '假设数据库存放在主页根目录下的data目录下
     6         'Set CNN = Server.CreateObject("ADODB.connection")
     7         'CNN.Open strProvider  '打开数据库连接
     8         
     9         
    10         set CNN = server.CreateObject("ADODB.Connection")
    11  strProvider = "Provider=SQLOLEDB;Server=localhost;uid=sa;pwd=1qaz2wsx;database=zgweb"
    12  CNN.Open constr
    13     'sql="select *  from TB_USERINFO"
    14             'set CNN = conn.execute(sql)
    15     %>
    16     
    17     <%
    18     '接下来,判断 ASP页所接收到的数据,并在数据库中进行搜索。
    19     Dim S_Key,RST,StrSQL
    20         S_Key = Trim(Request("key"))   '得到搜索关键字的值
    21         If S_Key <>"" then 
    22             Set RST=Server.CreateObject("ADODB.RecordSet")
    23             StrSQL=AutoKey(S_Key)  '此处使用自定义函数 AutoKey(),该函数为实现智能搜索的核心
    24             RST.Open StrSQL,CNN,3,2  '得到搜索后的记录
    25   
    26             If RST.BOF And RST.EOF Then
    27     %>
    28                 <font color="#FF0000">未找到任何结果!!!</font> 
    29     <%
    30                 Else
    31     %>
    32                     搜索名称为“<font color="#FF0000"><%= S_Key %></font>”的项,共找到 <font color="#FF0000"><%= RST.RecordCount %></font> 项:<p>
    33     <%
    34                     While Not RST.EOF   '遍历整个记录集,显示搜索到的信息并设置链接
    35     %>
    36                         <!-- 此处可设为你所需要的链接目标 -->
    37                         <font style="font: 12pt 宋体"><a href="info.aspID=<%= RST("source") %>" target="_blank"><%= RST("usersex") %></a></font><br>  
    38                         <!-- 显示部分详细内容 -->
    39                         <font style="font: 9pt 宋体"><%= Left(RST("usercompany"),150) %></font><p>  
    40     <%
    41                         RST.MoveNext
    42                     Wend
    43                     RST.Close
    44                     Set RST=Nothing
    45             End If
    46         End If
    47     %>
    48      <%
    49     Function AutoKey(strKey)
    50         CONST lngSubKey=2
    51         Dim lngLenKey, strNew1, strNew2, i, strSubKey
    52 
    53         '检测字符串的合法性,若不合法则转到出错页。出错页你可以根据需要进行设定。
    54         'if InStr(strKey,"=")<>0 or InStr(strKey,"`")<>0 or InStr(strKey,"'")<>0 or InStr(strKey," ")<>0 or InStr(strKey," ")<>0 or InStr(strKey,"'")<>0 or InStr(strKey,chr(34))<>0 or InStr(strKey,"")<>0 or InStr(strKey,",")<>0 or InStr(strKey,"<")<>0 or InStr(strKey,">")<>0 then
    55             'Response.Redirect "error.htm"
    56             
    57         'End If
    58 
    59         lngLenKey=Len(strKey)
    60         
    61         Select Case lngLenKey
    62             Case 0   '若为空串,转到出错页
    63                 Response.Redirect "error.htm" 
    64                 
    65             Case 1   '若长度为1,则不设任何值
    66                 strNew1=""
    67                 strNew2=""
    68             Case Else  '若长度大于1,则从字符串首字符开始,循环取长度为2的子字符串作为查询条件
    69                 For i=1 To lngLenKey-(lngSubKey-1)
    70                     strSubKey=Mid(strKey,i,lngSubKey)
    71                     strNew1=strNew1 & " or usersex like '%" & strSubKey & "%'"
    72                     strNew2=strNew2 & " or usercompany like '%" & strSubKey & "%'"
    73                     
    74                 Next
    75         End Select
    76 
    77         '得到完整的SQL语句
    78         AutoKey="Select * from TB_USERINFO where usersex like '%" & strKey & "%' or usercompany like '%" & strKey & "%'" & strNew1 & strNew2
    79         'response.Write AutoKey
    80 '        response.end()
    81 
    82     End Function
    83     %>
    84      <%
    85         cnn.Close
    86         Set cnn=Nothing
    87     %>
    88     
    89     <!--搜索结束-->

    effect:

    分页方法

     1 '========================
     2 'getNewsList
     3 '新闻列表+分页
     4 ' 调用GotTopic,获取数据
     5 '=========================
     6 Function getNewsListPage(sql,titleNumber,widthNumber,page)
     7 'set rs = conn.execute(sql)
     8 set rs=server.createobject("adodb.recordset")
     9 rs.open sql,conn,1,1
    10  
    11 If rs.eof Then
    12 Else
    13     rs.pagesize=20
    14     page=request.querystring("page")
    15     If Not Isnumeric(page) or page="" Then
    16       page=1
    17     else
    18       page=cint(page)
    19     End if
    20     if page<1 then page=1
    21     if page>rs.pagecount then page=rs.pagecount
    22     rs.AbsolutePage = page
    23     for i=1 to rs.pagesize
    24     
    25   response.Write "<li class=""""><a  href=""shownews.asp?news_id="& rs("news_id") &""" title="&rs("news_title") &"target=""_blank""><span class=""yuandian"">●</span>&nbsp;&nbsp;"& gotTopic(rs("news_title"),titleNumber)&"</a><label style=""text-align:right;"">"& jdate(rs("news_date")) &"</label></li>"
    26 
    27         
    28 rs.movenext
    29     if rs.eof then
    30       Exit For
    31     End if
    32     next
    33 end if
    34 
    35 response.Write "<div class=""pageStyle"">"
    36 response.Write "<ul class=""kkpage"">"
    37 if rs.pagecount>1 then '--判断页码是否大于1,大于不显示分页,反之显示分页
    38  
    39     if page>1 then 
    40     
    41         response.Write "<li id=""starpage""><a Href=""aload.asp?cat_id="&request("cat_id")&"&Page = 1"">首页</a> </li> "
    42         response.Write "<li id='PreviousPage'><a Href=""aload.asp?cat_id="&request("cat_id")&"&Page=page -1 "">上一页</a></li>"
    43         
    44     else
    45       
    46        response.Write " <li id=""currentpage"" style=""background:#dedede;""><a>首页</a></li> "
    47         
    48         response.Write "<li style=""background:#dedede;"" id='currentpage'><a>上一页</a></li>"
    49     
    50      end if
    51 
    52 
    53     if page>3 then StartPage=page-3 else StartPage=1
    54 
    55 
    56 if page<rs.pagecount-3 then EndPage=page+3 else EndPage=rs.pagecount
    57 
    58 'end if
    59 
    60 if page<rs.pagecount-3 then EndPage=page+3 else EndPage=rs.pagecount
    61 
    62 for j=StartPage to EndPage 
    63    if j=page then
    64      response.write "<li id='AbsPage'><a href=aload.asp?cat_id="&request("cat_id")&"&page="&j&">"&j&"</a></li>"
    65    else
    66      response.write "<li><a href=aload.asp?cat_id="&request("cat_id")&"&page="&j&">"&j&"</a></li>"
    67    end if
    68 next
    69 if page<>rs.pagecount  then 
    70     response.write "<li id='NextPage'><a Href='aload.asp?cat_id="&request("cat_id")&"&Page="&(page+1)&"'>下一页</a> <span></span></li>" 
    71         
    72     response.write "<li id='endpage'><a Href=""aload.asp?cat_id="&request("cat_id")&"&Page= rs.movenext.PageCount"">尾页</a> </li>" 
    73         
    74         else
    75       
    76         response.write "<li style=""background:#dedede;"" id='currentpage'><a>下一页</a></li>" 
    77         response.write "<li id=""currentpage"" style=""background:#dedede;""><a>尾页</a></li>" 
    78          end if
    79         
    80       end if 
    81             
    82      
    83 response.write "</ul>"
    84 response.write "</div>"
    85 'set rs.movenext=nothing
    86 
    87 'rs.movenext
    88 
    89 End function
  • 相关阅读:
    使用某些 DOCTYPE 时会导致 document.body.scrollTop 失效
    VB.NET 笔记1
    知识管理系统Data Solution研发日记之一 场景设计与需求列出
    知识管理系统Data Solution研发日记之五 网页下载,转换,导入
    折腾了这么多年的.NET开发,也只学会了这么几招 软件开发不是生活的全部,但是好的生活全靠它了
    分享制作精良的知识管理系统 博客园博客备份程序 Site Rebuild
    知识管理系统Data Solution研发日记之四 片段式数据解决方案
    知识管理系统Data Solution研发日记之二 应用程序系列
    知识管理系统Data Solution研发日记之七 源代码与解决方案
    知识管理系统Data Solution研发日记之三 文档解决方案
  • 原文地址:https://www.cnblogs.com/lstory/p/7028354.html
Copyright © 2011-2022 走看看