[导入][导入][c#]Web开发中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>
文章来源:http://wengjinbao.cn/?tid=477
文章来源:http://www.cnblogs.com/wengjinbao/archive/2007/10/18/928539.html
转载于:https://www.cnblogs.com/xiaozhuoyun/archive/2007/10/19/930838.html
[导入][导入][c#]Web开发中Tag的开发技巧相关推荐
- Firebug 调试器开发中的12个技巧
Firebug 调试器开发中的12个技巧 相信很多从事Web开发工作的开发者都听说和使用过Firebug,但可能大部分人还不知道,其实它是一个在网页设计方面功能相当强大的编辑器,它可以对 HTML.D ...
- 开发中避免延时操作技巧详解
这篇文章主要为大家介绍了开发中避免延时操作技巧详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪 前言 开发中我们或多或少会涉及到一些场景需要使用延时操作,而延时操作其实 ...
- iPhone开发中一些使用小技巧
经过iphone开发,我发现在开发过程中最难的就是一些嘈杂的细节,而了解一些小技巧就会达到事半功倍的效果,下面我就总结一下在iphone开发中的一些小技巧. 1.如果在程序中想对某张图片进行处理的话( ...
- 【repost】一探前端开发中的JS调试技巧
有请提示:文中涉及较多Gif演示动画,移动端请尽量在Wifi环境中阅读 前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问 ...
- @程序员,一文掌握 Web 应用中的图片优化技巧!
作者 | fecoder 责编 | 郭芮 这篇文章,我们将一起探讨,Web应用中能对图片进行什么样的优化,以及反思一些"负优化"手段. 为什么要对图片进行优化? 对于大多数前端工程 ...
- 学习 前端开发中的JS调试技巧(断点)
http://seejs.me/2016/03/27/jsdebugger/ alert() console.log(xxxx) JS断点调试 JS断点调试,即是在浏览器开发者工具中为JS代码添加断点 ...
- 一探前端开发中的JS调试技巧
转自:http://seejs.me/2016/03/27/%E3%80%90%E5%8E%9F%E5%88%9B%E3%80%91%E4%B8%80%E6%8E%A2%E5%89%8D%E7%AB% ...
- c语言使单片机输出低电平,单片机开发中的一些实用技巧
很多朋友正在学习单片机开发技术,但开发中免不了要碰到这样.那样的问题,有些问题可能无碍大局,但有一些问题却直接影响到产品的成本.体积.性能.这里介绍笔者的几个技巧,希望对大家的工作有帮助. 一.C语言 ...
- Django Web 官方 中文文档 开发手册
django-rest-framework https://yiyibooks.cn/yiyi/django-rest-framework/index.html Django2.0 中文 https: ...
最新文章
- 项目管理自动化实践之路
- 神经网络与深度学习——TensorFlow2.0实战(笔记)(三)(python运算符和表达式)
- Sphinx+MySQL5.1x+SphinxSE+mmseg
- 如何迁移outlook邮件到另一个硬盘_如何注册Yahoo邮箱?
- react系列之isMounted is an Antipattern
- Python是编译运行的
- 推荐2款在线Ascii画图工具
- python依赖如何打包_python 打包依赖包安装
- android黑科技系列——手机端破解神器MT的内购VIP功能破解教程
- wifi信号满格无法连接服务器,wifi正常为什么不能上网_一招解决wifi信号满格不能上网的方法...
- wifidog认证php,ddwrt+wifidog搭建热点认证系统(无线路由器web认证)
- 传统蓝牙BR/EDR的搜索Inquiry
- 【Laravel】Laravel-admin后台框架-2创建数据表建立模块增删改查CURD(1)
- Leetcode刷题笔记12:【20】有效的括号【155】最小栈【255】用队列实现栈(STL:stackC++ 单引号和双引号)
- java彩票机选生成
- 入门,前后端实现简单账号密码登录
- Docker 容器仓库之搭建私有仓库、hub仓库
- 关于计算重叠四边形的面积的算法
- Qt实现小球碰撞动画——屏保
- Landsat5数据下载中国地区1991年