刷新一次时为什么计数器加上了2?

havelife 2004-09-20 04:57:56
使用Access,最简单的计数一个页面的访问量.
为什么刷新时次数会一下子加上了2?
<%
连接数据库
打开数据库
创建记录集
打开记录集
次数=次数+1
更新记录集
输出
关闭数据库
%>
...全文
362 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
GAMESOUL 2005-07-22
  • 打赏
  • 举报
回复
我也是两次。。。
我这边是count.asp文件单使用时没有问题
但一被index.asp调用就是两次了,本地服网络服都两次

鱼的答案在不新开网页的情况下还解决了防刷
havelife 2004-09-21
  • 打赏
  • 举报
回复
可我发现把代码独立出来访问数据库就是正常的。
不是逻辑问题,也不是刷新了两次的问题。
好像在刷新时,代码被执行了两次??
这是什么原因,我该怎么解决?
「已注销」 2004-09-21
  • 打赏
  • 举报
回复
数据库中的值比显示的大1,说明是你的逻辑问题。你是显示后加一。
onkey1999 2004-09-21
  • 打赏
  • 举报
回复
肯定是刷新了两次
devinjiang 2004-09-21
  • 打赏
  • 举报
回复
是数据库记录集的问题
在conn.close前加上rs.close
你老不关记录集的话自然就乱了
havelife 2004-09-21
  • 打赏
  • 举报
回复
再说明一下这个问题,打开这个页面,刷新第一次显示正常,但数据库中的值却比显示的值大1。
然后再刷新,显示的值始终比数据库中的值小1。
lovebanyi 2004-09-21
  • 打赏
  • 举报
回复
直接
conn.execute("update counters set total=total+1")
Tomato77 2004-09-21
  • 打赏
  • 举报
回复
up
mastercyl 2004-09-21
  • 打赏
  • 举报
回复
数据类型问题??
那也不会一次加2吧??

是不是刷新次数多了
woodywjl 2004-09-21
  • 打赏
  • 举报
回复
当然了,你多刷几此的话,他当然要加几次了。
shmr 2004-09-21
  • 打赏
  • 举报
回复
很有可能是数据类型的问题,仔细检查你的TOTAL的数据类型
如果还是这样,你可以使用下面的代码:
x=Clng(Rs("TOTAL"))
x=x+1
Rs("TOTAL")=x
Rs.Update
19az 2004-09-21
  • 打赏
  • 举报
回复
代码应该是没有问题的,估计是刷新太快的缘故吧
havelife 2004-09-21
  • 打赏
  • 举报
回复
刷新会执行两次,让我不解。这是问题的根源。
逻辑是正确的。TO angelyujun(鱼),谢谢你,
这样的确可以解决这个问题。
但为什么刷新会导致那段访问数据库的代码执行
两次,我还是不明白。
havelife 2004-09-21
  • 打赏
  • 举报
回复
代码如下,大家帮忙看一下。刷新一次好像没问题,
但多刷几次就出现问题了。真郁闷。
<%
Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("counter/counter.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
SET Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open "Select * From counters" , conn,1,3
Rs("TOTAL") = Rs("TOTAL") + 1
Rs.Update
Response.write"总计访问量:"
Response.write Rs("TOTAL")
conn.Close
%>
coolwindkaka 2004-09-21
  • 打赏
  • 举报
回复
你是用的包含在文件里面吗?可能包含2次就执行了2次吧
angelyujun 2004-09-21
  • 打赏
  • 举报
回复
<%
连接数据库
打开数据库
创建记录集
打开记录集
if session("login")<>true then
次数=次数+1
session("login")=true
end if
更新记录集
输出
关闭数据库
%>
顺子 2004-09-21
  • 打赏
  • 举报
回复
給我分,我要升4個褲叉
flash0008 2004-09-21
  • 打赏
  • 举报
回复
我觉得应该如king27(天边人物)所说:数据库中的值比显示的大1,说明是你的逻辑问题。你是显示后加一。
panshiwu 2004-09-20
  • 打赏
  • 举报
回复
代码帖上来看看才知道
babyboyren 2004-09-20
  • 打赏
  • 举报
回复
你写的思路没错,但不知你的代吗正确不.
加载更多回复(4)

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧