.net頁面訪問次數(shù)統(tǒng)計實現(xiàn)原理與代碼
數(shù)據(jù)庫準(zhǔn)備:建立一個表total里面數(shù)據(jù)項為totals類型為varchar 50
.net語言環(huán)境:C#
global.asax里的代碼
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script language="C#" runat="server">
string strSelect;
SqlConnection conPubs;
SqlDataAdapter dadPubs;
DataSet dstTitles;
DataRow drowTitle;
void Session_Start(Object sender , EventArgs e)
{
if ( Application[ "SessionCount" ] == null ) {
Application[ "SessionCount" ] = 0;
strSelect = "SELECT totals From total";
conPubs = new SqlConnection(@"Server=localhost;Integrated Security=SSPI;Database=test");
dadPubs = new SqlDataAdapter(strSelect, conPubs);
dstTitles = new DataSet();
dadPubs.Fill(dstTitles, "total");
drowTitle = dstTitles.Tables["total"].Rows[0];
Application[ "SessionCount" ]=System.Convert.ToInt32(drowTitle["totals"].ToString().Trim());
}
}
void Session_End() {
Application["SessionCount"] = 0;
}
</script>
SessionCount.aspx里的代碼
void Page_Load(Object sender , EventArgs e)
{
int total = 0;
string strSelect;
SqlConnection conPubs;
//要執(zhí)行某項數(shù)據(jù)操作要用SqlCommand方式調(diào)用
SqlCommand cmdSql;
//為了防止同文檔里的其他頁面在訪問時也進行累加運算
int intHits = 0;
intHits = (int)Application["SessionCount"];
intHits += 1;
Application["SessionCount"] = intHits;
lblSessionCount.Text = Application[ "SessionCount" ].ToString();
total = (int)Application["SessionCount"];
strSelect = "update total set totals= @total";
conPubs = new SqlConnection(@"Server=localhost;Integrated Security=SSPI;Database=test");
cmdSql = new SqlCommand(strSelect, conPubs);
cmdSql.Parameters.Add("@total", total);
conPubs.Open();
cmdSql.ExecuteNonQuery();
conPubs.Close();
}
上段代碼有個小問題,就是過了一段時間后,Application["SessionCount"]的值會變成0,而且由于前面設(shè)置了一個初始的0,也會連帶的把數(shù)據(jù)庫里原來保存的值更新為0起始.
更改后
global.asax
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script language="C#" runat="server">
string strSelect;
SqlConnection conPubs;
SqlDataAdapter dadPubs;
DataSet dstTitles;
DataRow drowTitle;
void Session_Start(Object sender , EventArgs e)
{
if ( Application[ "SessionCount" ] == null ) {
Application[ "SessionCount" ] = 0;
strSelect = "SELECT totals From total";
conPubs = new SqlConnection(@"Server=localhost;Integrated Security=SSPI;Database=test");
dadPubs = new SqlDataAdapter(strSelect, conPubs);
dstTitles = new DataSet();
dadPubs.Fill(dstTitles, "total");
drowTitle = dstTitles.Tables["total"].Rows[0];
Application[ "SessionCount" ]=System.Convert.ToInt32(drowTitle["totals"].ToString().Trim());
}
}
void Session_End() {
Application["SessionCount"] = null;
}
</script>
SessionCount.aspx
<script language="C#" runat="server">
void Page_Load(Object sender , EventArgs e)
{
int total = 0;
string strSelect;
SqlConnection conPubs;
//要執(zhí)行某項數(shù)據(jù)操作要用SqlCommand方式調(diào)用
SqlCommand cmdSql;
//為了防止同文檔里的其他頁面在訪問時也進行累加運算
int intHits = 0;
intHits = (int)Application["SessionCount"];
intHits += 1;
total = intHits;
lblSessionCount.Text = intHits.ToString();
strSelect = "update total set totals= @total";
conPubs = new SqlConnection(@"Server=localhost;Integrated Security=SSPI;Database=test");
cmdSql = new SqlCommand(strSelect, conPubs);
cmdSql.Parameters.Add("@total", total);
conPubs.Open();
cmdSql.ExecuteNonQuery();
conPubs.Close();
Application["SessionCount"] = null;
}
</script>
- 獲取php頁面執(zhí)行時間,數(shù)據(jù)庫讀寫次數(shù),函數(shù)調(diào)用次數(shù)等(THINKphp)
- java字符串比較獲取字符串出現(xiàn)次數(shù)的示例
- c#字符串查找某詞出現(xiàn)的次數(shù)及索引
- Python統(tǒng)計列表中的重復(fù)項出現(xiàn)的次數(shù)的方法
- php計算數(shù)組相同值出現(xiàn)次數(shù)的代碼(array_count_values)
- JS實現(xiàn)在線統(tǒng)計一個頁面內(nèi)鼠標(biāo)點擊次數(shù)的方法
- python統(tǒng)計字符串中指定字符出現(xiàn)次數(shù)的方法
- java發(fā)送短信系列之限制日發(fā)送次數(shù)
- C++計算每個字符出現(xiàn)的次數(shù)
- C# winform實現(xiàn)登陸次數(shù)限制
相關(guān)文章
asp.net core 2.0 webapi集成signalr(實例講解)
下面小編就為大家分享一篇asp.net core 2.0 webapi集成signalr的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-11-11
asp.net中Fine Uploader文件上傳組件使用介紹
最近在處理后臺數(shù)據(jù)時需要實現(xiàn)文件上傳.考慮到對瀏覽器適配上采用Fine Uploader. Fine Uploader 采用ajax方式實現(xiàn)對文件上傳.同時在瀏覽器中直接支持文件拖拽[對瀏覽器版本有要求類似IE版本必須是9或是更高的IE10].2013-01-01
.NET Core基于Generic Host實現(xiàn)后臺任務(wù)方法教程
這篇文章主要給大家介紹了關(guān)于.NET Core基于Generic Host實現(xiàn)后臺任務(wù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11
ASP.NET GridView控件在列上格式化時間及DataFormatString使用
在GridView綁定日期格式的時候,數(shù)據(jù)庫中的日期為2008-07-04,而GridView顯示的是2007-07-04 000000,多了后面一截很不美觀,想把它去掉不知道有什么好的方法,感興趣的朋友可以了解本文,或許對你有所幫助2013-01-01
asp.net DbProviderFactory的使用-示例
NET 2.0有一個抽象工廠模式的典型應(yīng)用:通過DBProviderFactory 可以對不同數(shù)據(jù)庫進行操作。2009-11-11
在dropDownList中實現(xiàn)既能輸入一個新值又能實現(xiàn)下拉選的代碼
在dropDownList中實現(xiàn)既能輸入一個新值,又能實現(xiàn)下拉選項,想必很多的朋友已經(jīng)為此功能按耐不住了吧,接下來與大家分享下如何實現(xiàn),感興趣的朋友可以參考下哈2013-04-04

