蛙蛙推薦:asp中的多條件組合查詢實現

來源:互聯網
上載者:User

<!--
蛙蛙推薦:asp中的多條件組合查詢實現
多條件組合查詢在很多地方都很有用,本文用一個簡單的例子來實現一種組合查詢
在樣本之前請確保你安裝有sqlserver2000及其預設資料庫NorhtWind.
代碼非常直觀,加上關鍵區段我做了注釋,所以很容易理解.
需要注意的幾個問題就是:
1.在字串串連的時候注意兩個需要串連的串中第二個串的開頭第一個字元應該打一個空格,這樣不至於兩個串的首尾相連成一個單詞.
2.righ的left函數取出的結構區分大小寫,如果你字串裡用的是'and',而你判斷的時候用的是'AND',程式就不會按你所想的運行了
3.注意JS中,history.go(-1),history.back(),location.reload,location.href的區別和實際應用
提醒大家平時多做一些資料結構和演算法的訓練,寫程式基礎很重要,不要小看一些字串處理函數和Regex等的應用,好多大的項目正是由一些小函數組合在一起形成的.
-->
<%
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
%>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.