[c#]asp.ent下开发中Tag的开发技巧_asp.net教程-查字典教程网
[c#]asp.ent下开发中Tag的开发技巧
[c#]asp.ent下开发中Tag的开发技巧
发布时间:2016-12-29 来源:查字典编辑
摘要:网站开发常用关键字(tag),一般需要获得最多的被采用的Tag,也就是流行词。通常思路是将关键字tag保存到单独表中,然后在其他表中根据一组...

网站开发常用关键字(tag),一般需要获得最多的被采用的Tag,也就是流行词。

通常思路是将关键字tag保存到单独表中,然后在其他表中根据一组id进行对多个关键字进行标识。因为一个文章可以选择多个tag,查询的时候颇为麻烦。

所以我在开发中利用了这样的方法,当然不见得多高明:),分享下经验。

将tag直接保存在文章的表中,如Tag字段,tag为“c#”和“.net”,则Tag字段值为“c#/.net”就是依/符号分割tag,这样数据库中保存的是字符串了。单文章显示的时候可以直接分割成数组显示,减少表的关联,提高了效率。

当需要显示最近流行词的时候。

查询所有的tag

selecttagfrom表

利用DataReader把输出结果相加起来。然后根据分隔符转化为字符串,剩下的就是对字符串进行排序,根据tag重多少进行。并返回重复的数量,见代码。为方便查看,我都写在了一个aspx页面中了。

复制代码 代码如下:

<%@PageLanguage="C#"%>

<%@ImportNamespace="System.Data"%>

<%@ImportNamespace="XXXX.BLL"%>

<%@ImportNamespace="XXXX.Model"%>

<%@ImportNamespace="XXXX.DBUtility"%>

<scriptrunat="server">

protectedstringstext;

protectedvoidPage_Load(objectsender,EventArgse)

{

StringBuildersb=newStringBuilder();

using(System.Data.SqlClient.SqlDataReaderrd=XXXX.DBUtility.SqlHelper.ExecuteReader(SqlHelper.ConnectionString,System.Data.CommandType.Text,"SelectKinds+'/'FROMXXX",null))

{

while(rd.Read())

{

sb.Append(rd.GetString(0));

}

}

stext=sb.ToString();

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

}

///<summary>

///将字符串根据分隔符转化为数组

///</summary>

///<paramname="sourcestring">要转化的字符串</param>

///<paramname="compart">分隔符</param>

///<returns></returns>

publicArrayListToArray(stringsourcestring,charsplit)

{

CharEnumeratorce=sourcestring.GetEnumerator();

StringBuildersb=newStringBuilder();

ArrayListslist=newArrayList();

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);

}

}

returnslist;

}

publicclassmyComparer:IComparer

{

intIComparer.Compare(Objectx,Objecty)

{

return((newCaseInsensitiveComparer()).Compare(((SortItem)y).Count,((SortItem)x).Count));

}

}

publicclassSortItem

{

privatestringitemname;

privateintcount;

publicSortItem()

{

}

publicstringItemName

{

get{returnitemname;}

set{itemname=value;}

}

publicintCount

{

get{returncount;}

set{count=value;}

}

}

publicSystem.Collections.Generic.IList<SortItem>ToArrayBySort(ArrayListslist)

{

slist.Sort();

ArrayListsortList=newArrayList();

foreach(objectobjinslist)

{

SortItemsItem=newSortItem();

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);

}

myComparermyCm=newmyComparer();

sortList.Sort(myCm);

System.Collections.Generic.IList<SortItem>iList=newSystem.Collections.Generic.List<SortItem>();

foreach(objectobjinsortList)

{

iList.Add((SortItem)obj);

//Response.Write(((SortItem)obj).ItemName+"-"+((SortItem)obj).Count.ToString()+"<br/>");

}

returniList;

}

</script>

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新asp.net教程学习
    热门asp.net教程学习
    编程开发子分类