首先,我用DataGrid显示数据库中的所有文章,文章的链接为以下方式(使用DataGrid的模板列)
<ItemTemplate>
<a href=/wenzhang/<%#DataBinder.Eval(Container.DataItem,"wzpath")%>/<%#DataBinder.Eval(Container.DataItem,"wzname")%>>
<%#DataBinder.Eval(Container.DataItem,"wztitle")%>
</a><br>
</ItemTemplate>
之后,我打算当点击某篇文章的链接时,在文章的数据库中的"点击数"列加1,为了记录文章的点击率.
我写了一个修改数据库点击率的SQL语句,如下:
#region 增加文章点击数
static public string wz_dianjishu(string wzid)
{
try
{
ExecuteConn(new OleDbCommand("update wenzhang set djs=djs+1 where wzid="+wzid),connStr);
return " ";
}
catch(Exception)
{
return " ";
}
}
#endregion
问题:我该如何修改文章的点击数呢.我在<a href=...></a>中加入onclick="...",可是不管用用.而且我的文章是.htm格式的.所以无法在具体的文章页面里修改点击数.我也不想修改链接地址为abc.asp?wzid=123的方式转移链接之后再转到真正页面.还有其他方法吗?

解决方案 »

  1.   

    可以在文章的Page_load里面加一个数据库写入啊。
      

  2.   

    进入 这个新闻 的 detail 页面的  pageload事件里面  往 数据库里面插 值  在  列表 页面里面的超级连接上  并 不要做 任何操作
      

  3.   

    大概就是这么个用法!//加一
    private int Order(int newsID)
    {
    int i = 0; string strSql = "";
    strSql = "SELECT TOP 1 NEWS FROM tbTree WHERE (ID = @newsID)"; SqlCommand myCommand = new SqlCommand(strSql,conn.dbconn);
    myCommand.Parameters.Add("@newsID",SqlDbType.Int);
    myCommand.Parameters["@newsID"].Value = newsID; SqlDataReader myReader = myCommand.ExecuteReader();

    if (myReader.Read())
    {
    i = myReader.GetInt32(0)+1;
    } myReader.Close(); myCommand.Dispose(); return i;
    }
      

  4.   

    TO: cuipeng99(PC) ,那个方法怎么调用呀.我的文章地址都是此种方式的:
    <a href=/wenzhang/aaa/20041210001.htm>aaa</a>
    <a href=/wenzhang/aaa/20041210002.htm>bbb</a>
    <a href=/wenzhang/aaa/20041210003.htm>ccc</a>
    <a href=/wenzhang/aaa/20041210004.htm>ddd</a>
    <a href=/wenzhang/aaa/20041210005.htm>eee</a>
      

  5.   

    在你生成的静态页面里应该这样<script src="xx.aspx?id=12345"></script>
    而这个id在作模板时你可以用一个标识(如生成的文件名20041210001)来标明,生成静态页面时进行替换,
    然后在xx.aspx文件时处理让数据库根据文件名+1
      

  6.   

    to:twtetgso(*七匹狼*) ,
    <script src="xx.aspx?id=12345"></script>
    我去试验了一下.管用耶.谢了.给分!