📄 searchutility.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 + -