mohsen.nsb44
چهارشنبه 14 تیر 1391, 13:38 عصر
سلام از دوستان تقاضا دارم که در این تاپیک همکاری کنن و نحوه ایجاد امار سایت رو بدون استفاده از کامپوننت ها اموزش بدن
خب قدم اول بازدید کل سایت است که براحتی میشه از طریق مراحل زیر انجام داد
اول بگم که من یک جدول به نام userAmar گرفتم و فیلد هایی به صورت زیر از نوع عددی را دارا میباشد
today , yesterday, week , mounth,year,total
خب حالا در گلوبال در Session_Start کد زیر رو نوشتم برای بازدید کل
if (Application["Tcount"] == null)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["connectionstring"].ConnectionString;
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select * from userAmar";
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
DataSet ds = new DataSet();
da.SelectCommand = cmd;
da.Fill(dt);
Application["Tcount"] = dt.Rows[0][6];
}
و کد زیر رو در متد load صفحه نوشتم
int Tcount;
//int count;
Application.Lock();
Tcount = (int)Application["Tcount"];
//count = (int)Application["count"];
//count += 1;
Tcount += 1;
insertTotal(Tcount);
Application["Tcount"] = Tcount;
//Application["count"] = count;
Application.UnLock();
lblTotal.Text = Tcount.ToString();
protected void insertTotal(int total)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["connectionstring"].ConnectionString;
SqlCommand cmd = new SqlCommand("S_insert_amar", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@total", total);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
return;
}
خب این کد به درستی کار میکنه حالا نوبت بازدید امروز هستش که کارش شبیه همین کد هستش با این تفاوت که به روز بعد رفتیم باید یکبار مقدار اولیش صفر بشه بعد مراحل فوق مثل امار کل سایت به اون اضافه بشه حالا سوال من اینجاست که چطور میتونم اینکارو بکنم یعنی فقط یکبار عمل صفر شدن کد امروز و بقیه ماجرا در ضمن فقط یکبار هم باید مقدار بازدید امروز به دیروز منتقل بشه
لطفا راهنمایی بکنید تا هم بنده و هم سایر دوستان بتوانیم بازدید سایت را برای خود داشته باشیم
خب قدم اول بازدید کل سایت است که براحتی میشه از طریق مراحل زیر انجام داد
اول بگم که من یک جدول به نام userAmar گرفتم و فیلد هایی به صورت زیر از نوع عددی را دارا میباشد
today , yesterday, week , mounth,year,total
خب حالا در گلوبال در Session_Start کد زیر رو نوشتم برای بازدید کل
if (Application["Tcount"] == null)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["connectionstring"].ConnectionString;
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select * from userAmar";
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
DataSet ds = new DataSet();
da.SelectCommand = cmd;
da.Fill(dt);
Application["Tcount"] = dt.Rows[0][6];
}
و کد زیر رو در متد load صفحه نوشتم
int Tcount;
//int count;
Application.Lock();
Tcount = (int)Application["Tcount"];
//count = (int)Application["count"];
//count += 1;
Tcount += 1;
insertTotal(Tcount);
Application["Tcount"] = Tcount;
//Application["count"] = count;
Application.UnLock();
lblTotal.Text = Tcount.ToString();
protected void insertTotal(int total)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["connectionstring"].ConnectionString;
SqlCommand cmd = new SqlCommand("S_insert_amar", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@total", total);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
return;
}
خب این کد به درستی کار میکنه حالا نوبت بازدید امروز هستش که کارش شبیه همین کد هستش با این تفاوت که به روز بعد رفتیم باید یکبار مقدار اولیش صفر بشه بعد مراحل فوق مثل امار کل سایت به اون اضافه بشه حالا سوال من اینجاست که چطور میتونم اینکارو بکنم یعنی فقط یکبار عمل صفر شدن کد امروز و بقیه ماجرا در ضمن فقط یکبار هم باید مقدار بازدید امروز به دیروز منتقل بشه
لطفا راهنمایی بکنید تا هم بنده و هم سایر دوستان بتوانیم بازدید سایت را برای خود داشته باشیم