日期:2008-09-12  浏览次数:20537 次


在做asp.net论坛中遇到比较头疼的就是斑竹的设置问题拉.实现一版块多斑竹和一用户担任多版块斑竹,是个双向考虑的问题.当然用象asp中的split()函数方法可以在asp.net中相应的实现,但是对于我这样的新手来说总是感觉比较麻烦.所以就想用一种从数据库建表的角度出发,用DataReader实现数据的读取和验证,言归正转.开始......

首先专门建立个储存斑竹的数据表settop

id(数字)为主键                   username(文本)为斑竹名            news_id (数字)为论坛版块的id

id         username     news_id

1            overred         10

2            red                11

3            overred         11

4             red               10

 

先说一下几个页面

______________________

index.aspx

各个版块的显示,显示如下
new_id栏目名称10随便聊聊>>11ASP程序设计>>12ASP.NET程序设计>> 13其它计算机问题>>
这个页面中的news_id传到bbs.aspx中并在bbs.aspx.cs中设置如下代码:

public void isbanzhu()//判断是否为斑竹
  {
   try
   {
    string  datas="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +Server.MapPath("overred.mdb");
    OleDbConnection conn = new OleDbConnection(datas);
    conn.Open();
    string st=Request.QueryString["news_id"];

     string sql="select * from settop where username=@st";
                OleDbCommand cmd=new OleDbCommand (sql,conn);
    cmd.Parameters.Add("@st",OleDbType.VarChar,100).Value=st;
    OleDbDataReader dr;
    dr=cmd.ExecuteReader();
    while(dr.Read())//循环读取并与st比较
    {
     if(dr["news_id"].ToString()==st)
      this.bzmanage.Visible=true;
      this.isbz.Visible=true;  
             }
   }

   catch( OleDbException ex)
   {
    Response.Write(ex);
   
   }
  }

通过 while(dr.Read())/循环读取并与st比较,符合条件就执行 this.bzmanage.Visible=true; this.isbz.Visible=true;  其中在Label bzmanage和HyperLink  isbz中你可以设置斑竹的功能.


asp.net论坛中的一版块多斑竹和一用户担任多版块斑竹的问题就解决拉.其他的设置你就自己去随意的做吧!