經常看到許多網站有一個站內搜索功能,這個是如何實現呢?如果是ASP,那Dreamweaver很快就能實現。現在是ASP.NET,得稍微手編一下。
11.1 SELECT高級搜索技巧
經過上面章節的學習,對SELECT多少會點了解。SELECT高級搜索技巧,其實也沒有什麼神秘,主要與模式匹配運算符的運用有關。所以這裡主要講解模式匹配運算符的運用。
模式匹配運算符LIKE、NOT LIKE常用於模糊查找,它判斷列值是否與指定的字符串格式相匹配。LIKE用於查找匹配一定條件的記錄,NOT LIKE用於查找不匹配指定條件的記錄。可用於字符串、文本、日期等類型查詢。
1.百分號%:可匹配任意類型和長度的字符。
例如:SELECT 學習筆記 FROM 學習筆記表 WHERE 標題 LIKE “網絡%”
這個查詢是要查詢學習筆記表中標題以“網絡”開始的所有學習筆記,如:網絡數據庫ASP一點通過、網絡與手機通訊開發研究等。
例如:SELECT 學習筆記 FROM 學習筆記表 WHERE 標題 LIKE “%ASP.NET%”
這個查詢是要查詢所有標題包含了“ASP.NET”的學習筆記。
2.下劃線_:匹配單個任意字符,常用來限制表達式的字符長度。
例如:SELECT 學習筆記 FROM 學習筆記表 WHERE 標題 LIKE ”V_開發精選 ”
這個查詢主要是查詢類似於“VB開發精選”、“VC開發精選”這樣標題的學習筆記。
3.中括號[ ]:指定個字符、字符串或范圍,要求所匹配對象為它們的任一個。
11.2 站內搜索功能的實現
介紹了SELECT高級搜索技巧後,將要介紹站內搜索功能的實現。這裡只采用了百分號%模式匹配運算符。
(1)打開模板dkblog.dwt.aspx,插入表單,設ID=” gofrm”,動作為” ../dkgo.aspx”,方法為”POST”;插入文本框,設ID= “dkgotxt”;插入按鈕“搜索”,結果如圖11-1所示。
(2)保存模板dkblog.dwt.aspx更新所有網頁。
(3)新建一個空白ASP.NET VB動態頁,並保存為dkgo.aspx。添加數據集Ztre,其設置如圖11-2所示。
圖11-1 添加有關表單控件
圖11-2 添加數據集Ztre
(4)單擊“高級”按鈕,把SQL命令:
SELECT * FROM ZT ORDER BY ZITIME DESC
改為:
SELECT * FROM ZT WHERE ZTNAME LIKE '%"+Request.Form("dkgotxt")+"%' ORDER BY ZITIME DESC
結果如圖11-3所示。
圖11-3 對數據集Ztre進行修改
(5)對dkgo.aspx頁面進行有關設計,綁定有關動態文本到頁面中,設計重要區域,結果如圖11-4所示。
圖11-3 對dkgo.aspx的頁面設置
有關設置細節可以參照index.aspx的有關設置。