新手小弟最近在做个论坛,没想做的多大多全,能像个样就行了。
但是还是遇到了较大的阻力,发现很多东西都不会,
还望各位大侠能够出手相助,好心有好报。给段示例代码,给句语言上
的指导,给个有用的连接。。等等凡是能帮得上小弟的,小弟
都将不胜感激。数据库自己设计好了,帖子表中帖子的ID是数据库自动编号的(逐渐增大),在编码时主要有以下不会的地方,因为根本不知道怎么入手。(以后还不知道会遇到什么困难,有“过来人”能给多说几句小弟祝你万寿无疆)(本人新手,请别骂我,お願いします)。1:如何实现按时间的先后顺序倒过来显示帖子的列表?   (也就是后发的帖子在上面,先发的在下面,怎么实现?)2:如何置顶帖子(使某帖子始终显示在上面)
   
3:如何给帖子加精(我想这样:加精的帖子自然被置顶,但是会被后来的帖子顶下去,只有置顶                 的才真正的一直在顶部)
   
4:最新帖子(在用户登录时显示一些最新的帖子,我想是从"后面"查询问题,我只知道select 
    top,不知道怎么从后面查询)5:如何过滤非法字符(这个比较难,估计各有各的办法,想多听听)

解决方案 »

  1.   


    在绑定出来的sql语句里按select 发帖时间 from blogs order by 发贴时间 desc 
      

  2.   

    如果是置顶 
    那就加个字段,1为置顶,0为非置顶 
    排序用双排序,先按排序字段排,再按ID排,都是倒序 
    如order by a desc,b desc
      

  3.   

    4
    最新帖子可以由时间来判断
    posttime最晚的就是最新的
    按这个排下序
    然后再top 几条就可以了
      

  4.   

    最新帖子的话也是用降序排序,如果只要一些的话就top 10
      

  5.   

    过滤非法字符
    我给你说下方法(我自己也没动手写过,也不知道是不是最笨的方法)你可以把一些非法的字放进一个表里
    比如
    id  name用户提交的数据的时候读数据库里的这张表判断有没有这个字
    有的话提示不能操作
    但是这个具体如何查
    我也不知道用什么方法
      

  6.   

    过滤非法字符的话
    str.replace("<","&lt");
    str.replace(">","&gt");
    不知道可以不?
    继续等高人
      

  7.   

    可能对于用户提交太多的数据的话还真是不知道咋去匹配
    总不可能拿着那么多数据去搞
    效率多低
    不知道有没有什么好的解决方案,
    我去google查下
      

  8.   


    表 帖子
    (
     编号,
    名称,
    是否置顶(1:是,0:否),
    发帖人,
    发帖时间
    )
    表 加精帖子

    id,
    帖子编号,
    加精人,
    加精时间
    )1:如何实现按时间的先后顺序倒过来显示帖子的列表?  (也就是后发的帖子在上面,先发的在下面,怎么实现?)select * from 帖子 order by 发帖时间 desc2:如何置顶帖子(使某帖子始终显示在上面)select * from 帖子 order by 是否置顶 desc, 发帖时间 desc
     
    3:如何给帖子加精(我想这样:加精的帖子自然被置顶,但是会被后来的帖子顶下去,只有置顶                的才真正的一直在顶部)select a.* from 帖子 a
    left join 加精帖子 b on b.id=a.编号
     order by 是否置顶 desc, 发帖时间 desc,b.加精时间 desc 
     
    4:最新帖子(在用户登录时显示一些最新的帖子,我想是从"后面"查询问题,我只知道select
        top,不知道怎么从后面查询)select top 10 a.* from 帖子 a
    left join 加精帖子 b on b.id=a.编号
     order by 是否置顶 desc, 发帖时间 desc,b.加精时间 desc 5:如何过滤非法字符(这个比较难,估计各有各的办法,想多听听) public class 过滤字符类
    {
         public string 过滤字符(object obj)
        {
            if (obj == DBNull.Value)
                return "";
            else
                return 过滤字符(obj.ToString());
        }    public string 过滤字符(string str)
        {
            if (str == null || str == "")
                return "";
            else
            {
                str = str.Replace("靠", "*");
            }
        }}
      

  9.   

    可以去51aspx下载些例子看看。
      

  10.   

    1. DataTable.Reverse(); 或者 是 arraylist.reverse(); 有点记不清了。自己点了看看就知道了。还有中办法就是查询语句里按你时间排序。2.数据表里添加一bit字段标注此贴是否置顶,提交后更新到顶部(具体实现要看你帖子排序是用reverse()方法还是按时间排序)3.和上面一样,添加个bit字段标注是否为精华4.用户登录时显示的最新帖子给你举个最简单的例子:放个gridview,边框都设为0,只读取10条记录,无翻页,数据绑定为你的帖子列表datatable的reverse();或者你按时间排序出来的结果。