注册 登录
编程论坛 ASP.NET技术论坛

我也发一个,精确统计在线人数.

球球 发布于 2007-03-10 01:17, 591 次点击

private void Page_Load(object sender, System.EventArgs e)
{
if (Application["online"] == null)
{
DataTable dtnew = new DataTable();
dtnew.Columns.Add("userid",typeof(string));
dtnew.Columns.Add("lastaccesstime",typeof(DateTime));
Application["online"] = dtnew;
}

DataTable dt = Application["online"] as DataTable;
DataRow[] rows = dt.Select("userid='"+Session.SessionID+"'");
if (rows.Length == 1)
{
DataRow dr = rows[0];
dr["lastaccesstime"] = DateTime.Now;
}
else
{
DataRow dr = dt.NewRow();
dr["userid"] = Session.SessionID;
dr["lastaccesstime"] = DateTime.Now;
dt.Rows.Add(dr);
}
for(int i = 0 ; i < dt.Rows.Count; i++)
{
DataRow dr = dt.Rows[i];
TimeSpan t = DateTime.Now - Convert.ToDateTime(dr["lastaccesstime"]);
if (t.Seconds > 8)
{
dr.Delete();
}
}
dt.AcceptChanges();

this.Label1.Text = dt.Rows.Count.ToString();

}

8 回复
#2
lq73506842007-03-10 09:55
收下了.
#3
IT浪子2007-03-10 12:26
支持一下
#4
topzj2007-03-10 14:42
麻烦~~~~~~
#5
bygg2007-03-10 17:14

辛苦了..

[此贴子已经被作者于2007-3-10 17:15:19编辑过]

#6
HankStar2007-03-22 23:32
路过~收下了~
#7
yunj11052007-03-23 10:40

收下,谢了

#8
生命之剑2007-03-23 14:28
记下了
#9
cyyu_ryh2007-03-23 14:44

并收下
1