| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 924 人关注过本帖
标题:看看为什么不能更新数据呢?(谢谢各位已经解决)
取消只看楼主 加入收藏
adsdomain
Rank: 2
等 级:论坛游民
威 望:1
帖 子:127
专家分:54
注 册:2008-5-15
结帖率:50%
收藏
 问题点数:0 回复次数:5 
看看为什么不能更新数据呢?(谢谢各位已经解决)
我写了个小程序,例如访问网址是[url]http://bbs.bccn.net/tc.asp?com=adsdomain[/url],如果是第一次使用该地址就记录adsdomain到数据库表tc中com字段,count字段作为记录该地址访问的次数,第一次为1.
如果第二次访问就更新1为2,以此类推。但是测试“更新数据失败”
代码如下:
tc.asp的代码
<!--#include file = pcconn.asp -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<%
  com=request("com")
  sql = "select * from tc where [com]='"&com&"'"
  Set rs = Server.CreateObject("ADODB.RecordSet")
  rs.Open sql,conn,1,1
  if rs.recordcount<>0 then
    id=rs("id")
               com=rs("com")
        count=rs("count")
         ne=count+1
              
 Conn.Execute("update [tc] set count='"&ne&"' where id='"&id&"'")
      rs.close   
     '-------------------------------------------------------------------------

else
   Set rs = Server.CreateObject("ADODB.RecordSet")
  conn.Execute "insert into [tc] ([com]) values('"&com &"')"
      Response.Write("第一次访问记录")
end if

%>
</body>
</html>
<%
conn.close
set conn=nothing
%>

pcconn.asp 的代码
<%
set conn=Server.CreateObject("Adodb.Connection")
DBPath = Server.MapPath("pc.mdb")   'data.mdb为数据库文件名,datamdb/为路径,这两个要个数据库的文件名和路径保持一致!
conn.open "provider=Microsoft.Jet.oledb.4.0;data source="&DBpath
%>
数据库pc.mdb结构表名:tc
字段:id ,com,pccount
出错提示
错误类型:
Microsoft JET Database Engine (0x80040E14)
UPDATE 语句的语法错误。
/asptest/id2.asp, 第 26 行
错误行代码:
Conn.Execute("update [tc] set count='"&ne&"' where id='"&id&"'")

[[it] 本帖最后由 adsdomain 于 2008-5-21 18:55 编辑 [/it]]

[[it] 本帖最后由 adsdomain 于 2008-5-28 20:30 编辑 [/it]]
搜索更多相关主题的帖子: 数据 
2008-05-15 19:35
adsdomain
Rank: 2
等 级:论坛游民
威 望:1
帖 子:127
专家分:54
注 册:2008-5-15
收藏
得分:0 
清除错误位置后可以运行啊,就是每次访问都添加一个记录,count是数字id是自动编号的,count如果因为关键字不能使用但是我也看到其他程序也在使用这个也没有什么问题啊?请教各位了.
2008-05-18 21:17
adsdomain
Rank: 2
等 级:论坛游民
威 望:1
帖 子:127
专家分:54
注 册:2008-5-15
收藏
得分:0 
已经把count替换了,但是现实数据类型不匹配,是怎么解释啊?请教各位大侠了
2008-05-21 18:18
adsdomain
Rank: 2
等 级:论坛游民
威 望:1
帖 子:127
专家分:54
注 册:2008-5-15
收藏
得分:0 
谢谢yms123,替换后显示数据类型不匹配.这是什么意思啊》?
2008-05-24 18:19
adsdomain
Rank: 2
等 级:论坛游民
威 望:1
帖 子:127
专家分:54
注 册:2008-5-15
收藏
得分:0 
参考下面一段文章看看--------------------------------------------------------------------------------------------------------------
标准表达式中数据类型不匹配(Access)
这个问题我记得刚接触时就出现这个问题。结果今天又碰到这个问题,花了N个小时才发现问题的所在(还没想出解决方法)

在Access中,是无法使用存储过程的,但可以使用文本命令,如
update news set title=@title,types=@types,context=@context where id=@id ID字段类型为自动增加,这句语句放在sql里是不会有问题的,但在access却有一个明显的错误:标准表达式中数据类型不匹配(另外一种结果就是不会更新该条记录) 而造成的这个问题的原因就在于id的字段类型,在access where id=@id 如果id类型为数字,那么就不能存在''(在sql这里''是指定一个字段的值用,如'aaa'),而上面的文本命令的最后执行结果是update news set title='标题',types='类型' ,context='内容' where id='1' ,不知道这种错误算什么错误:( 而正确的语句应该是update news set title='标题',types='类型' ,context='内容' where id=1 ,偏偏delete 语句又不会出现上面所说的错误,如:delete from news where id=@id
发现数据库用access所花的编写代码的时间远远超出了用sql的代码编写时间,而且用access经常出现莫名错误,更主要就是可能有非法字符如果不使用文本命令就会执行错误,怀念sql,

[[it] 本帖最后由 adsdomain 于 2008-5-28 20:27 编辑 [/it]]
2008-05-25 16:55
adsdomain
Rank: 2
等 级:论坛游民
威 望:1
帖 子:127
专家分:54
注 册:2008-5-15
收藏
得分:0 
谢谢大家都关注,本问题已经解决!其实就是在id='"&id&"'")去掉两个单引号就行了如下:
Conn.Execute("update [tc] set pccount='"&ne&"' where id="&id&"")
2008-05-28 20:29
快速回复:看看为什么不能更新数据呢?(谢谢各位已经解决)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013094 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved