学术堂首页 | 文献求助论文范文 | 论文题目 | 参考文献 | 开题报告 | 论文格式 | 摘要提纲 | 论文致谢 | 论文查重 | 论文答辩 | 论文发表 | 期刊杂志 | 论文写作 | 论文PPT
学术堂专业论文学习平台您当前的位置:学术堂 > 计算机论文 > asp论文

留言板与商品浏览页中的排序和索引

来源:学术堂 作者:朱老师
发布于:2016-10-22 共2699字
  摘要

        笔者从事网站制作的相关工作多年,从静态网站发展到动态网站的制作,技术逐渐成熟,针对目前网上发贴、提交评论信息、留言板等,用户互动栏目逐渐增多,提交的用户信息量逐渐增多,这时就需要管理好这些用户的信息,从而使用了数据库中的排序和索引,使得数据的检索速度加快,更方便用户的体验。
  
  1 ASP. NET 概述
  
  ASP. NET 是基于框架结构,并结合公共语言运行库( 提供各种不同语言的开发平台),能够在服务器端使用的 web 应用程序,它的功能非常强大,与之前的开发模型相比,它有许多的优势:
  
  (1)性能进一步提升。ASP. NET 采用编译代码,将后台的页面生成 DLL 文件,这些代码是在服务器上运行的,代码采用公共语言运行库代码。
  
  (2)广泛使用的的工具。ASP. NET Framework(框架)在VS 环境中使用了大量的工具箱和设计器,方便用户使用。
  
  (3)功能强大且灵活。由于ASP. NET 基于多种语言的开发平台(公共语言运行库),所以,在实际应用中可以充分发挥各种语言的不同特点,从而实现相同的功能,提高了整个程序的灵活性,这是ASP. NET 的闪光点,在同一个环境中,可以针对不同的开发者。
  
  (4)操作简单。ASP. NET 从配置数据库开始,到 MVC 数据类库的使用,再到数据的提高等都变得十分简单,容易操作。
  
  (5)数据库的索引。关系数据库,是一种使用较为广泛的数据结构类型,它可以使表中的语句执行得更快,当数据库中有许多记录时,一般的搜索就是进行全表搜索,把记录全部取出来,再与查询条件进行对照,最后再返回满足条件的记录,这样操作对于数据库的资源造成很大的消耗,造成大量I/O 操作;如果采用索引就可以很好的解决这些问题,在相关的表中建立索引文件,然后在索引项目中查找符合查询条件的记录,最后在表索引的行集合中找到符合条件的记录。
  
  2 留言板中的排序和索引
  
  ASP. NET 中,留言板中记录的排序是一个非常复杂的内容,在排序的过程中还涉及到分页、分级的索引以及排序。如果按照升序排序,代码如下:
  
  源代码:
  
  < asp:Repeater ID = “ rep” runat = “ server” On Item Data Bound = “ rep-Item Data Bound” >
  < Item Template >
  < table width = “ 100% ” border = “ 1” class = “ gb-table” >
  < tr >
  < td > 第< asp:Literal ID = “ lit X” runat = “ server” > < / asp:Literal > 条< / td >
  < / tr > < / table >
  < / Item Template >
  < / asp:Repeater >
  
  / / 循环列表事件
  
  int x = 0;
  protected void rep-Item Data Bound(object sender,Repeater Item Event Args e)
  {
  if (e. Item. Item Type = = List Item Type. Alternating Item | | e. Item. Item Type = = List Item Type. Item)
  {
  Panel pnl Replay = e. Item. Find Control(“pnl Replay” )as Panel;
  Literal lit Replay = e. Item. Find Control(“lit Replay” )as Literal;
  if (lit Replay. Text. Trim() .Length = = 0)
  {
  pnl Replay. Visible = false;
  }
  else
  {
  pnl Replay. Visible = true;
  }
  Literal lit X = e. Item. Find Control(“lit X” )as Literal;
  lit X. Text = (Anp. Start Record Index + x)。To String();
  x + + ;
  }
  }
  
  结果是 1,2,3,4,5…依次进行升序排序,这是我们经常见到的排序方法,即顺序排列。
  
  但我们平时的留言,是有时效性的,最近的留言是置顶的,即留言板实际的情况是降序排列,即6,5,4,3,2,1,这样就需要得到这样的结果:
  
  
  
  这里需要用到数学的计算方法,将降序排列的数依次减去升序排列的数,然后在此基础上加一,这样就得到了我们的降序排列。
  
  / / 循环列表事件
  最终的结果变成:
  int x = 0;
  protected void rep-Item Data Bound(object sender,Repeater Item Event Args e)
  { //绑定控件
  if (e. Item. Item Type = = List Item Type. Alternating Item | | e. Item. Item Type = = List Item Type. Item)
  {
  Panel pnl Replay = e. Item. Find Control(“pnl Replay” )as Panel;
  Literal lit Replay = e. Item. Find Control(“lit Replay” )as Literal;
  if (lit Replay. Text. Trim() .Length = = 0)
  {
  pnl Replay. Visible = false;
  }
  else
  {
  pnl Replay. Visible = true;
  }
  Literal lit X = e. Item. Find Control(“lit X” )as Literal;
  lit X. Text = (anp. Record Count - (anp. Start Record Index + x)+1)。To String();
  x + + ;
  }
  }
  
  3 商品浏览页面的排序和索引
  
  商品的上一页、下一页、返回这三个按钮,不能简单的按照商品的 ID 号加1 或者是减1 进行排序,因为商品的 ID 号并非是连续的(ID 为自增,商品的 ID 有可能进行增加或删除操作,导致 ID 号不连续,并且删除掉的 ID 号不能再填充到ID 中,ID 会出现断层)。比如:当前商品的 ID 号是12,上一页的商品 ID 号并非是11,下一页的商品 ID 号并非是13,这个时候用到 SQL2005 以上版本支持的Row_Number 函数,也就是在原有的数据库的基础上再多加一列,SQL 语句为:
  
  select ROW_NUMBER() over (order by createdate desc)as rowid,* from shop-prodect
  
  取值时,根据当前商品的ID 号,取出 rowid 的值,SQL 语句为:
  
  Select rowid from (select ROW-NUMBER() over (order by createdate desc)as rowid,* from shop-pro-dect)as a where a. ID = 12
  
  得到的结果是 rowid = 5,在查找当前的 id = 12 时,找到它对应的 rowid 值为5,这样就使得 rowid 的值是连续的,不会因为增加,删除id 的值而出现断裂号。
  
  商品浏览面的排序和索引
  
  综上所述,无论是在商品页中的商品浏览的顺序,还是在制作留言板的时候,我们都不仅要考虑到分页以后的排序,还要考虑到发表的最近的评论放在首条。只有充分考虑到这些实际的应用,然后结合数据库中的数据排序的使用技巧,才能得到最新的商品及对于某一件商品的评论。
  
  本系统采用了关系型数据库,对测试的数据进行了大量的实验和分析,在数据库的完整性、安全性、并发性、效率以及兼容性方面进行了测试,确保数据的运行稳定,进一步加深了对SQL 语句方面的知识的应用,对比了不同 SQL 的版本,以及各个版本之间存在的兼容性问题进行了详细的对比、分析。
  
  参考文献:
  
  [1] 国家863 中部软件孵化器。 ASP. NET 从入门到精通[M]. 北京: 人民邮电出版社,2015.
  [2] 饶志坚,缪祥华。 Web 程序设计技术( ASP. NET) [M]. 北京: 中国林业出版社,2015.
  [3] ( 美) 加洛韦,等。 ASP. NET MVC 5 高级编程( 第 5 版) [M]. 北京: 清华大学出版社,2015.
  [4] 斯蒂芬森( Ryan Stephens) ,等。 SQL 入门经典( 第 5 版) [M]. 北京: 人民邮电出版社,2011.
  [5] 张静,基于 ASP. Net 的教育服务平台设计与实现[D]. 北京: 北京工业大学,2011.
  [6] 卢军,陈建军,谭佐军,谢静。 基于ASP. NET 和SQL 的大学物理实验选课系统设计[J]. 大学物理实验,2011,24( 1) : 89 -92.
相关标签:
  • 报警平台
  • 网络监察
  • 备案信息
  • 举报中心
  • 传播文明
  • 诚信网站