⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 searchutility.cs

📁 ASP开发网站的 关于网站的设计和说明 还有SQL的程序 数据库
💻 CS
字号:
namespace ASPNET.StarterKit.Communities {

    using System;
    using System.Web;
    using System.Web.UI.WebControls;
    using System.Data;
    using System.Data.SqlClient;
    using System.Collections;
    using System.Text.RegularExpressions;
    using System.Text;


    //*********************************************************************
    //
    // SearchUtility Class
    //
    // Contains static utility methods used by the Search module. 
    //
    //*********************************************************************

    public class SearchUtility {



        //*********************************************************************
        //
        // EditSearchKeys Method
        //
        // Deletes current search words and adds new ones. 
        //
        //*********************************************************************

        public static void EditSearchKeys(SqlConnection connection, int sectionID, int contentPageID, string title, string briefDescription) {
            // clear away existing search keys
            SqlCommand cmd = new SqlCommand("Community_SearchDeleteSearchKeys", connection);
            cmd.CommandType = CommandType.StoredProcedure;
            
            cmd.Parameters.Add("@communityID", CommunityGlobals.CommunityID);
            cmd.Parameters.Add("@contentPageID", contentPageID);
            cmd.ExecuteNonQuery();
            
            // Add the search keys
            AddSearchKeys(connection, sectionID, contentPageID, title, briefDescription);
        }



        //*********************************************************************
        //
        // AddSearchKeys Method
        //
        // Splits contents of title and description into separate words
        // and adds each word to the database as search keys. 
        //
        //*********************************************************************

        public static void AddSearchKeys(SqlConnection connection, int sectionID, int contentPageID, string title, string briefDescription) {
            MatchCollection words = Regex.Matches(title + " " + briefDescription, @"\w+" );
            
            foreach (Match word in words)
                if (word.Value.Length < 100)
                    AddSearchKey(connection, sectionID, contentPageID, word.Value);
        }


        //*********************************************************************
        //
        // AddSearchKey Method
        //
        // Adds a single search key to the database. 
        //
        //*********************************************************************

        private static void AddSearchKey(SqlConnection connection, int sectionID, int contentPageID, string searchKey) {
            SqlCommand cmd = new SqlCommand("Community_SearchAddSearchKey", connection);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@communityID", CommunityGlobals.CommunityID);
            cmd.Parameters.Add("@sectionID", sectionID);
            cmd.Parameters.Add("@contentPageID", contentPageID);
            cmd.Parameters.Add("@searchKey", searchKey);
            cmd.ExecuteNonQuery();
        }



        //*********************************************************************
        //
        // GetSearchResults Method
        //
        // Returns list of matching content from search keys. 
        //
        //*********************************************************************

        public static ArrayList GetSearchResults(string username, int sectionID, string searchString) {
            ArrayList colResults = new ArrayList();
   
            // build parsed search string
	        searchString = searchString.Replace("'", "''");
            StringBuilder builder = new StringBuilder();
            MatchCollection words = Regex.Matches(searchString, @"\w+" );
                
	        // if no words, abort!
	        if (words.Count == 0)
		      return null;
    
	        foreach (Match word in words)
              builder.AppendFormat("'{0}',", word.Value);
            string parsedSearchString = builder.ToString().TrimEnd(',');                    
        
      	    // Get the search results
            SqlConnection conPortal = new SqlConnection(CommunityGlobals.ConnectionString);
            SqlCommand cmd = new SqlCommand("Community_SearchGetSearchResults", conPortal);
            cmd.CommandType = CommandType.StoredProcedure;
            
            cmd.Parameters.Add("@communityID", CommunityGlobals.CommunityID);
            cmd.Parameters.Add("@username", username);
            cmd.Parameters.Add("@sectionID", sectionID);
            cmd.Parameters.Add("@searchString", parsedSearchString);
            
            conPortal.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
                colResults.Add(new ContentInfo(dr));
            conPortal.Close();
            
            return colResults;
        }


        //*********************************************************************
        //
        // SearchUtility Constructor
        //
        // Private constructor for class with static methods. 
        //
        //*********************************************************************

        private SearchUtility() {}
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -