在c#中计算网站的每日访问者数

时间:2014-12-28 07:51:54

标签: c# sql asp.net

我知道如何计算访客的总数或在线人数。我想找到每日访问者的数量并在我的页面中显示它,我搜索一个代码来计算我网站的每日访问者 如果今天没有行,我使用查询并向访问者计数器表插入一行。因此,当新访问者打开会话时,服务器必须运行选择,然后为每个访问者插入或更新一行。 我的疑问是:

    IF (NOT EXISTS(SELECT hitNumber FROM VisitorCounter WHERE lastUpdate =  now ))
       BEGIN 
           INSERT INTO counters (somecols) VALUES(somevalue)
        END
   ELSE
     BEGIN
          UPDATE counters  SET hitNumber =  @currentVisitors  WHERE lastUpdate = now
     END

我想知道是否有一种方法需要为所有访问者更新一行,并且每天插入一次。因为我将此查询添加到global.cs文件中的session_start,我的网站加载速度较慢。

1 个答案:

答案 0 :(得分:0)

    private void Form1_Load(object sender, EventArgs e)
    {
        // number of visitor
        int totalNumbers = 0;
        // Database
        string dbConStr = "Server=.\\sqlexpress;Database=Test;Integrated Security=true;";
         System.Data.SqlClient.SqlConnection sqlConnection1 = 
            new System.Data.SqlClient.SqlConnection(dbConStr);

        System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
        cmd.CommandType = System.Data.CommandType.Text;
        cmd.CommandText = "INSERT CounterTable (totalNumbers, day) VALUES (@totalNumbers, getdate())";
        cmd.Parameters.Add("totalNumbers",SqlDbType.Int).Value = totalNumbers;
        cmd.Connection = sqlConnection1;

        sqlConnection1.Open();
        cmd.ExecuteNonQuery();
        sqlConnection1.Close();
    }