準備工作
1、新建一個TongJi 的數(shù)據(jù)庫,添加一個 tongji 的表,在表中有一個 Number 的字段,為 int 類型,Numger初值為1000;
2、新建一個網(wǎng)站;
3、新建數(shù)據(jù)庫連接字符串(
<connectionStrings>
<add name="TongJiConnectionString" connectionString="Data Source=.;Initial Catalog=TongJi;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
關(guān)鍵代碼
4、添加新項/全局應(yīng)用程序類:Global.asax ,其文件的全部代碼如下:
<%@ Application Language="C#" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script runat="server">
void Application_Start(object sender, EventArgs e)
{
// 在應(yīng)用程序啟動時運行的代碼
SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["TongJiConnectionString"].ConnectionString;
con.Open();
SqlCommand cmd = new SqlCommand("select * from tongji", con);
int count = Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
Application["total"] = count;
Application["online"] = 0;
}
void Application_End(object sender, EventArgs e)
{
// 在應(yīng)用程序關(guān)閉時運行的代碼
SqlConnection con = new SqlConnection();
con.ConnectionString=ConfigurationManager.ConnectionStrings["TongJiConnectionString"].ConnectionString;
con.Open();
SqlCommand cmd = new SqlCommand("update tongji set Number=" + Application["total"].ToString(), con);
cmd.ExecuteNonQuery();
con.Close();
}
void Application_Error(object sender, EventArgs e)
{
// 在出現(xiàn)未處理的錯誤時運行的代碼
}
void Session_Start(object sender, EventArgs e)
{
// 在新會話啟動時運行的代碼
Application.Lock();
Application["total"] = (int)Application["total"] + 1;
Application["online"] = (int)Application["online"] + 1;
Application.UnLock();
}
void Session_End(object sender, EventArgs e)
{
// 在會話結(jié)束時運行的代碼。
Application.Lock();
Application["online"] = (int)Application["online"] - 1;
Application.UnLock();
}
</script>
運行測試
5、拖兩個Lable 到 Default.ASPx 上;
6、其Default.ASPx.cs 代碼如下:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.Label1.Text = "總訪問人數(shù)" + Application["total"].ToString();
this.Label2.Text = "當前在線數(shù)" + Application["online"].ToString();
}
}
7、OK?。诱{(diào)試。
注意事項
8、
我在VS2005中調(diào)試進行時,顯示:總訪問人數(shù)為1001;當前在線數(shù)1當;
我重新打開另外一個IE,并把地址Copy過去,這時顯示:總訪問人數(shù)為1002;當前在線數(shù)2;
這說明一切正常。但數(shù)據(jù)庫中仍然為1000,??????
我就是在這里讓耽誤了很多的時間(一天),但在我絕望時,我多試了一次,
然而,這一次上天意給了我意外的恩賜。
這時,我在VS2005中,"文件"菜單,選擇“保存Global”;
此時,數(shù)據(jù)庫中的1000才更新為1002。
如果在I I S 中調(diào)試也一樣,要正常關(guān)機或停掉WWW服務(wù)才將數(shù)據(jù)一性寫進數(shù)據(jù)庫。