追求新生活 名字2008

活着的意义

c#练笔_计数器(读书活动专题小记录)

话说区要搞比赛,我搞好了读书专题站点后感觉还不很差就话交了。点之到交前的一天.领导才话要看附件,我看了后,很不开心哦。因为有好多要求的。最重要的要求到不是不能达到,而是时间不够了。呜呼,不过,我还是搞了两个技术点才交上去.好,来正题;

1、复习了flash插入页面中“插入层--在层中再插入flash”,而且加一句<param   name=wmode   value=transparent>在<embed src=前。ok了。

2、话要有阅读次数,那好,数据库中本来就有cishu一字段,我就在cs文件中的写入db中加入一句,当复习,先在view页面定义几个label来用然后就在源码中写:

int newsid = Convert.ToInt32(Request.QueryString["id"].ToString());

 string strConnection = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + Server.MapPath("dir\\db.mdb");
  //创建数据库连接对象
     OleDbConnection myconn = new OleDbConnection(strConnection);
     //打开数据库连接
    myconn.Open();
    string sql = "select A.Title,A.Content,A.AddTime,A.Author,A.ReadCishu,A.flash_http_type, B.BigClassName from News A ,BigClass B Where B.BigClassID = A.BigClassID And A.ID =" + newsid;

  //创建数据库命令
            OleDbCommand mycmd = new OleDbCommand(sql, myconn);
                OleDbDataReader dr = mycmd.ExecuteReader();
                if (dr.Read())//读出内容
                {
                    lbTitle.Text = dr["Title"].ToString();
                    lbContent.Text = dr["Content"].ToString();
                    lbAuthor.Text = dr["Author"].ToString();
                    lbDate.Text = dr["AddTime"].ToString();
                    flash_http_type = dr["flash_http_type"].ToString();
                    Label1.Text = dr["ReadCishu"].ToString();

                }
                //写一次增加访问
                string sql_cishu = "update News set ReadCishu='" + dr["ReadCishu"] + "'+1 where ID=" + newsid;
                mycmd = new OleDbCommand(sql_cishu, myconn);
                mycmd.ExecuteNonQuery();
                myconn.Close()

3、要求话要有计数器:哈哈,这是我很久前写过的,03年时候是用asp写,06年时候是用vb.net写,现在09年用用c#搞一个了。哈哈。我对c#有信心:

cs文件代码:

protected void Page_Load(object sender, EventArgs e)
    {
       string app_path = Server.MapPath("").ToString ();

//这里如果更完善看更新插入的新行,也可以不要
       string counter_file=app_path+"\\"+"ms.cnt/";//定义该目录下的ms.cnt为计数器文件

       string   HitRate, tempNo,imgName; // 'HitRate是点击率
       StreamReader txtReader = File.OpenText(counter_file);      
       HitRate=txtReader.ReadLine ().Trim ();//读行
       txtReader.Close();
        //如果符合条件
       if (Session["On_line2"] == null)
       {
           Session["On_line2"] = true;
           tempNo = System.Convert.ToString(System.Convert.ToInt32(HitRate) + 1);//中间取得值      
           StreamWriter txtWriter = File.CreateText(counter_file);
           txtWriter.WriteLine(tempNo);//写行
           txtWriter.Close();
       }
       // Response.Write(HitRate);//文字形式输出
      for (int i = 1; i <= HitRate.Length; i++)//图形方式输出
        {
            imgName = HitRate.Substring(i-1,1);//因为从0开始计算位置的,所以i-1
            Response.Write("<img src='pic/" + imgName + ".gif'>");
        }
    }


public void  Application_Start(Object S, EventArgs E)
{
    Application["Counter"] = 0;
  //'第一次启动Application时将CurrentUsers归零
  Application["CurrentUsers"] = 0;
}

public void Session_Start(Object S, EventArgs E)
{
  //'On_line标志设成False,表示第一次连接到该站点
  Session["On_line"] = false;  //  '第一次连接,所以赋值false
  Session["On_line2"]=false ;   //'避免多人连接时候在没有超时又再重新加载页面出错准备。

  //'指定Session的TimeOut属性(默认值是20分钟)
  Session.Timeout = 10;
  Application.Lock();
  //'每有一人连接,CurrentUsers便加一
  Application["CurrentUsers"] = System.Convert .ToInt32 (Application["CurrentUsers"]) + 1;
  Application.UnLock();
}
public void  Session_End(Object S, EventArgs E)
{
  Application.Lock();
  //'每有一人离线,CurrentUsers便减一
  Application["CurrentUsers"] = System.Convert .ToInt32 (Application["CurrentUsers"]) - 1;
  Application.UnLock();
}
public void  Application_End(Object S, EventArgs E)
{
}

解析就不再做了。就是用了文件类StreamReader和StreamWriter打开/写入文件。其中,考虑到刷新和session的应用配合,务求访问人次的统计真实有效。最后以图形输出。ok,当然,我们更好的是可以用creatfile生成计数器文件先。这也是很简单的事情的哦修改几行而已

string app_path = Server.MapPath(".")+ "\\" + "ms.cnt";
        //判断是否存在计数器文件
       if (File.Exists(app_path)==false)
       {
           StreamWriter txtWriter = File.CreateText(Server.MapPath(".") + "\\" + "ms.cnt");
           txtWriter.WriteLine(1);//写行,定为1
           txtWriter.Close();
       }
       string counter_file=app_path..........如果是新手,好好研究下啊。

交了文件就去长隆玩:十环过山车>摩托过山车>垂直过山车>魔术表演>午餐>异国风情>u型滑板>4D恐龙电影>惊爆危机岛

posted on 2009-11-27 11:08  pyman  阅读(548)  评论(0编辑  收藏  举报

导航