Посчитать посетителя одной страницы в asp.net - PullRequest
0 голосов
/ 25 января 2012

У меня есть страница, которая содержит запись базы данных.Я хочу посчитать количество посещений этой страницы.Я использую приведенные ниже коды для подсчета количества посещений страницы по инкрементам просмотра поля записи.но это инкрементное представление случайно.например, когда я обновляю страницу, приращение просмотра 20!мои коды для этой страницы:

 protected void Page_Load(object sender, EventArgs e)
    {
        da db = new da();
        string str = "select views from newstxt where id=" + Request.Params["id"].ToString();
        DataTable dt = new DataTable();
        dt = db.select(str);
        int view = Int32.Parse(dt.Rows[0][0].ToString());
        //increment
        view++;
        //
        str = "update newstxt set views=N'{0}' where id=" + Request.Params["id"].ToString();
        str = string.Format(str, view);
        db.docom(str);


    }

Ответы [ 3 ]

1 голос
/ 25 января 2012

Есть несколько способов для этого подхода простой подход будет использовать состояние просмотра

объявить свойство как

 public int ViewCount
    {
        get { return (int)ViewState["viewcount"]; }
        set { ViewState["viewcount"] = value; }
    }

использовать как ViewCount++; при загрузке страницы и получить значение int value = ViewCount

Надеюсь, это поможет !!!

1 голос
/ 03 мая 2012
        Protected Sub Page_Load(sender As Object, e As EventArgs)
            Me.countMe()

            Dim tmpDs As New DataSet()
            tmpDs.ReadXml(Server.MapPath("~/counter.xml"))

            lblCounter.Text = tmpDs.Tables(0).Rows(0)("hits").ToString()
        End Sub

        Private Sub countMe()
            Dim tmpDs As New DataSet()
            tmpDs.ReadXml(Server.MapPath("~/counter.xml"))

            Dim hits As Integer = Int32.Parse(tmpDs.Tables(0).Rows(0)("hits").ToString())

            hits += 1

            tmpDs.Tables(0).Rows(0)("hits") = hits.ToString()

            tmpDs.WriteXml(Server.MapPath("~/counter.xml"))
        End Sub
XML
<?xml version="1.0" encoding="utf-8" ?>
<counter>
  <count>
     <hits>0</hits>
  </count>
0 голосов
/ 25 января 2012

В вашем коде нет ничего плохого, но кажется, что что-то не так в вашем Request.Params. Используете ли вы строку запроса, если это так, я бы предложил вам использовать Request.QueryString вместо. Кроме того, что вы хотите, только если обновить счетчик, то вы можете избежать выбора запроса и уменьшить свой код до:

da db = new da();
String str = "UPDATE newstxt SET views = views + 1 WHERE id=" + Request.QueryString["id"].Trim();
db.docom(str);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...