[微軟範例] 簡單搜尋引擎 #1 (Model Binding / 類別檔入門)& 關鍵字的「高亮度(HighLight)」顯示

1. 寫一個簡單的類別檔,以「公開屬性」對應資料表的「欄位」
2. 關鍵字的「高亮度(HighLight)」顯示
微軟網站提供了一個簡單範例,請由此下載。

上一週課程提到 Model Binding

(相關文章請看 http://www.dotblogs.com.tw/mis2000lab/Tags/Model%20Binding/default.aspx

入門者 寫一個簡單的類別檔,以「公開屬性」對應資料表的「欄位」

 

微軟的網站有一個範例也用到這樣的作法,而且更簡單。

因為他的資料表跟我上課的 test資料表(新聞資料表)很類似

可以當成補充教材。

**************************************************************************************

C# / VB範例都有提供:https://code.msdn.microsoft.com/Implement-Search-Engine-in-cc2ca84e

 

作者是One Code Team,我猜是: "一站式程式範例庫" 提供的

[下載]微軟 All-In-One Code Framework / 一站式程式範例庫

**************************************************************************************

Article.cs類別檔

 

    /// <summary>
    /// 用來表示資料庫的「一筆記錄」。
    /// </summary>
    public class Article    {
        public long ID { get; set; }         // 文章編號(公開屬性)
        public string Title { get; set; }      // 文章標題(公開屬性)
        public string Content { get; set; }   // 文章內容(公開屬性)
    }
 
另一個類別檔,DataAccess.cs裡面則是 資料存取 的方法。
程式碼都很簡單,只有幾段ADO.NET而已。
僅列出一部分進行說明:
// 註解:您在程式碼看到List的資料型態<Article>
就是上一個Article.cs類別檔用來對應資料表「欄位」的「公開屬性」。VB語法寫成List(Of Article)。
 
public List< Article> GetAll()  {
      // 取得資料表裡面的所有紀錄
return QueryList("select * from [Articles]");
}
protected List< Article> QueryList(string cmdText)  {
      List< Article> articles = new List< Article>();
      SqlCommand cmd = GenerateSqlCommand(cmdText);  //本類別檔裡面的 另一個函式
      using (cmd.Connection)   {
          SqlDataReader reader = cmd.ExecuteReader();
          if (reader.HasRows)   {
              while (reader.Read())   {
                  articles.Add(ReadArticle(reader));
                  // 把找到的文章,放到 List<Article>裡面。
              }
          }
      }
      return articles;   // 傳回值,資料型態 List<Article>
}
 
------ 原廠的範例,有個小Bug。------
您按下搜尋按鈕,關鍵字的「高亮度(HighLight)」顯示
    會把大寫變成小寫,因為他的JavaScript裡面 RegExp用到 "igm" 代表忽略大小寫。
    如果您剛好搜尋「a」這個字,會讓「超連結」損毀。因為超連結的字串就是寫成 <a> ... </a>
 
因為他的「高亮度」顯示的功能,是透過 JavaScript來作,透過 .Replace()來作文字的替換,
把「關鍵字」加上黃色底色。

下一篇文章用一些方法,稍做改寫。請參閱:

[微軟範例] 簡單搜尋引擎 #2 (Model Binding / 類別檔入門)& 關鍵字的「高亮度(HighLight)」顯示

 

連續兩篇文章的解說,我錄成教學影片   YouTube -- https://youtu.be/j0t2FrFgpLI

 

如果您想作一個簡單的資料庫搜尋、站內文章(產品)搜尋,可以參考以前文章:

[文章下載]網站內的搜尋引擎,單一欄位與多重欄位的搜尋(自己手寫SqlDataSource與SelectParameter參數)

 

並請牢記:使用 Parameter(參數)寫法,避免SQL Injection攻擊。

[FAQ] ADO.NET 參數寫法 Parameter(避免SQL Injection資料隱碼攻擊)

 

Microsoft Anti-XSS (Anti-Cross Site Scripting Library) 避免XSS攻擊

 

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

線上課程,遠距教學 (Web Form 49hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程,遠距教學 (ASP.NET MVC 75hr)  https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab

ASP.NET MVC線上課程 第一天 免費看 (5.5小時) 

寫信給我,不要私訊 --  mis2000lab (at) yahoo.com.台灣  或  school (at) mis2000lab.net


ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。 

................   facebook社團   https://www.facebook.com/mis2000lab   ......................

................  YouTube (ASP.NET) 線上教學影片  https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/

 

Blog文章 "附的範例" 無法下載,請看 這裡 ...... https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download

請看我們的「售後服務」範圍(嚴格認定)

......................................................................................................................................................

...................................................................................................................................................... 

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課

 

ASP.NET MVC 5 線上教學

累積時數約 75小時...... 第一天(5.5小時)完整內容,"免費"讓您評估