一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

[c#]asp.ent下開發中Tag的開發技巧

網站開發常用關鍵字(tag),一般需要獲得最多的被采用的Tag,也就是流行詞。
通常思路是將關鍵字tag保存到單獨表中,然后在其他表中根據一組id進行對多個關鍵字進行標識。因為一個文章可以選擇多個tag,查詢的時候頗為麻煩。
所以我在開發中利用了這樣的方法,當然不見得多高明 :),分享下經驗。

將tag直接保存在文章的表中,如Tag字段,tag為“c#”和“.NET”,則Tag字段值為“c#/.NET”就是依/符號分割tag,這樣數據庫中保存的是字符串了。單文章顯示的時候可以直接分割成數組顯示,減少表的關聯,提高了效率。
當需要顯示最近流行詞的時候。
查詢所有的tag
select tag from 表
利用DataReader把輸出結果相加起來。然后根據分隔符轉化為字符串,剩下的就是對字符串進行排序,根據tag重多少進行。并返回重復的數量,見代碼。為方便查看,我都寫在了一個ASPx頁面中了。
復制代碼 代碼如下:
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="XXXX.BLL" %>
<%@ Import Namespace="XXXX.Model" %>
<%@ Import Namespace="XXXX.DBUtility" %>



<script runat="server">

    protected string stext;
    protected void Page_Load(object sender, EventArgs e)
    {
        StringBuilder sb = new StringBuilder();
        using (System.Data.SqlClient.SqlDataReader rd = XXXX.DBUtility.SqlHelper.ExecuteReader(SqlHelper.ConnectionString, System.Data.CommandType.Text, "Select Kinds + '/' FROM XXX", null))
        {
            while (rd.Read())
            {
                sb.Append(rd.GetString(0));
            }
        }
        stext = sb.ToString();

        ToArrayBySort(ToArray(stext, '/'));

    }

    

    /// <summary>
    /// 將字符串根據分隔符轉化為數組
    /// </summary>
    /// <param name="sourcestring">要轉化的字符串</param>
    /// <param name="compart">分隔符</param>
    /// <returns></returns>
    public ArrayList ToArray(string sourcestring, char split)
    {
        CharEnumerator ce = sourcestring.GetEnumerator();
        StringBuilder sb = new StringBuilder();
        ArrayList slist = new ArrayList();

        while (ce.MoveNext())
        {
            if (ce.Current != split)
            {
                sb.Append(ce.Current);
            }
            else
            {
                if (string.Empty == sb.ToString()) continue;
                slist.Add(sb.ToString());
                sb.Remove(0, sb.ToString().Length);
            }
        }
        return slist;
    }

    public class myComparer : IComparer
    {
        int IComparer.Compare(Object x, Object y)
        {
            return ((new CaseInsensitiveComparer()).Compare(((SortItem)y).Count, ((SortItem)x).Count));
        }
    }

    public class SortItem
    {
        private string itemname;
        private int count;
        public SortItem()
        {
        }
        public string ItemName
        {
            get { return itemname; }
            set { itemname = value; }
        }
        public int Count
        {
            get { return count; }
            set { count = value; }
        }
    }

    public System.Collections.Generic.IList<SortItem> ToArrayBySort(ArrayList slist)
    {
        slist.Sort();
        ArrayList sortList = new ArrayList();
        foreach (object obj in slist)
        {
            SortItem sItem = new SortItem();
            sItem.ItemName = obj.ToString();
            sItem.Count = 1;
            if (sortList.Count == 0) { sortList.Add(sItem); continue; }
            if (obj.ToString() == ((SortItem)sortList[sortList.Count - 1]).ItemName)
            {
                sItem.Count = ((SortItem)sortList[sortList.Count - 1]).Count + 1;
                sortList.RemoveAt(sortList.Count - 1);
            }
            sortList.Add(sItem);
        }
        myComparer myCm = new myComparer();
        sortList.Sort(myCm);

        System.Collections.Generic.IList<SortItem> iList = new System.Collections.Generic.List<SortItem>();
        foreach (object obj in sortList)
        {
            iList.Add((SortItem)obj);
            //Response.Write(((SortItem)obj).ItemName + "-" + ((SortItem)obj).Count.ToString() + "<br />");
        }
        return iList;

    }
</script>

AspNet技術[c#]asp.ent下開發中Tag的開發技巧,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 精品久久久久久亚洲精品 | 在线精品国内视频秒播 | 亚洲精品综合在线 | 国产第8页| 在线a网站 | 国产精品青青青高清在线密亚 | 99精品国产成人一区二区 | 99久久精品国产免看国产一区 | 91社区在线观看 | 怡红院视频在线观看最新 | 狠狠色丁香久久综合五月 | 日本免费www | 免费国产最新进精品视频 | 美女视频黄频大全免费视频 | 成人免费在线视频观看 | 免费在线色 | 在线视频一区二区 | 国产精品吹潮香蕉在线观看 | 国产中文字幕第一页 | 日本一区二区高清免费不卡 | 中文字幕一级毛片 | 爽爽影院色黄网站在线观看 | 免费一区 | 在线免费观看国产精品 | 2020国产精品 | 久久国产自偷自偷免 | 久久久噜噜噜久久老司机 | 国内偷拍第一页 | 国产免费成人在线视频 | 国产成人资源 | 国产一起色一起爱 | 伊人第一页 | 欧美日韩国产一区二区三区欧 | 精品国语对白精品自拍视 | 在线亚洲播放 | 亚洲精品ccc | 亚洲视频99| 久久情| 成人在免费观看视频国产 | 亚洲香蕉伊在人在线观看9 亚洲香蕉伊综合在人在线 亚洲香蕉影院 | 黄大色大片免费久久 |