Mcraft
پنج شنبه 18 خرداد 1391, 12:25 عصر
سلام دوستان.
من برای اینکه بتونم آمار بازدید از هر مطلب رو بدست بیارم از روش زیر استفاده میکنم.
Imports System.Data.SqlClient
Imports System.Data
Imports System.Drawing
Partial Class Default2
Inherits System.Web.UI.Page
' Dim ds As New DataSet
Dim con As New SqlConnection(System.Configuration.ConfigurationMa nager.ConnectionStrings("DatabaseConnectionString1").ConnectionString)
Dim com As New SqlCommand
Public matn As String = String.Empty
Public Status As Integer
Public n As Integer
Dim int_roindexgrid As Integer
Sub bind_grid()
Session("user") = False
Try
con.Open()
com.Connection = con
com.CommandText = "select * from mohammad where Active='" & Session("user") & "'"
Dim dta As New SqlDataAdapter(com)
' ds.Clear()
' dta.Fill(ds, "mohammad")
' GridView1.DataSource = ds
GridView2.DataBind()
Finally
If (Not com Is Nothing) Then com.Dispose()
con.Close()
End Try
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
bind_grid()
End If
Dim CC As Integer = Request.QueryString("id")
TextBox2.Text = CC
End Sub
Protected Sub GridView2_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs ) Handles GridView2.RowCommand
Dim bool_see As Boolean = False
If e.CommandName = "system" Then
int_roindexgrid = e.CommandArgument
bool_see = True
If bool_see = True Then
red_mohammad()
up_mohammad()
End If
End If
End Sub
Sub red_mohammad()
con.Open()
com.Connection = con
com.CommandText = "select * from mohammad where id ='" & int_roindexgrid & "'"
Dim reader As SqlDataReader = com.ExecuteReader
If reader.HasRows Then
reader.Read()
Status = (reader("Status"))
End If
con.Close()
com.Dispose()
End Sub
Sub up_mohammad()
If Status > 0 Then
n = Status + 1
End If
con.Close()
com.Connection = con
com.CommandText = "update mohammad set Status=@Status where id='" & int_roindexgrid & "'"
com.Parameters.AddWithValue("Status", n)
Try
con.Open()
com.ExecuteNonQuery()
con.Close()
Catch ex As Exception
Response.Write(ex.Message)
Finally
If (Not com Is Nothing) Then com.Dispose()
con.Close()
End Try
End Sub
End Class
این کد کاملا درست کار میکنه، امااااااااااا ....
یه مشکلی که هست وقتی postback در LinkButton اجرا میشه ، اگه postback تو همون صفحه باشه درست کار میکنه . اما اگه اطلاعات به صفحه دیگری بره اونوقت counter عمل نمیکنه.
لازم به ذکر که با HyperLink نمیشه اینکار رو انجام داد.
من برای اینکه بتونم آمار بازدید از هر مطلب رو بدست بیارم از روش زیر استفاده میکنم.
Imports System.Data.SqlClient
Imports System.Data
Imports System.Drawing
Partial Class Default2
Inherits System.Web.UI.Page
' Dim ds As New DataSet
Dim con As New SqlConnection(System.Configuration.ConfigurationMa nager.ConnectionStrings("DatabaseConnectionString1").ConnectionString)
Dim com As New SqlCommand
Public matn As String = String.Empty
Public Status As Integer
Public n As Integer
Dim int_roindexgrid As Integer
Sub bind_grid()
Session("user") = False
Try
con.Open()
com.Connection = con
com.CommandText = "select * from mohammad where Active='" & Session("user") & "'"
Dim dta As New SqlDataAdapter(com)
' ds.Clear()
' dta.Fill(ds, "mohammad")
' GridView1.DataSource = ds
GridView2.DataBind()
Finally
If (Not com Is Nothing) Then com.Dispose()
con.Close()
End Try
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
bind_grid()
End If
Dim CC As Integer = Request.QueryString("id")
TextBox2.Text = CC
End Sub
Protected Sub GridView2_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs ) Handles GridView2.RowCommand
Dim bool_see As Boolean = False
If e.CommandName = "system" Then
int_roindexgrid = e.CommandArgument
bool_see = True
If bool_see = True Then
red_mohammad()
up_mohammad()
End If
End If
End Sub
Sub red_mohammad()
con.Open()
com.Connection = con
com.CommandText = "select * from mohammad where id ='" & int_roindexgrid & "'"
Dim reader As SqlDataReader = com.ExecuteReader
If reader.HasRows Then
reader.Read()
Status = (reader("Status"))
End If
con.Close()
com.Dispose()
End Sub
Sub up_mohammad()
If Status > 0 Then
n = Status + 1
End If
con.Close()
com.Connection = con
com.CommandText = "update mohammad set Status=@Status where id='" & int_roindexgrid & "'"
com.Parameters.AddWithValue("Status", n)
Try
con.Open()
com.ExecuteNonQuery()
con.Close()
Catch ex As Exception
Response.Write(ex.Message)
Finally
If (Not com Is Nothing) Then com.Dispose()
con.Close()
End Try
End Sub
End Class
این کد کاملا درست کار میکنه، امااااااااااا ....
یه مشکلی که هست وقتی postback در LinkButton اجرا میشه ، اگه postback تو همون صفحه باشه درست کار میکنه . اما اگه اطلاعات به صفحه دیگری بره اونوقت counter عمل نمیکنه.
لازم به ذکر که با HyperLink نمیشه اینکار رو انجام داد.