第十一章 Doking's BLOG站內搜尋的實作
經常看到許多網站有一個站內搜尋功能,這個是如何實現呢?如果是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的有關設定。