| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 771 人关注过本帖
标题:[求助]数据库不能更新
只看楼主 加入收藏
seden
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-10-13
收藏
 问题点数:0 回复次数:9 
[求助]数据库不能更新

连接了数据库,可以把里面的内容取出来,但是不能添加记录
即使添加了记录,用到记录更新时就出错。
提示:数据不能更新,数据可能是只读形式。但我发现并不是只读。
rs.addnew
......
......
rs.update 提示这行有错
rs.close

有人碰过类似的问题吗?
帮我解决下,谢谢!






[此贴子已经被作者于2006-11-12 20:18:05编辑过]

搜索更多相关主题的帖子: 数据库 
2006-11-12 20:11
tang688
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1219
专家分:35
注 册:2004-12-25
收藏
得分:0 
只读形式有以下几种可能,
第一种是你打开的方式为只读(你说的错误,多半是这种情况)。
第二种可能是如果你用的是ACCESS的数据库,那么,库文件*.dbf是不是只读属性的呢?NTFS系统的话你有没有操作权限呢?
第三种,在这之前,你有一个程序用读写方式独占了该库(这种可能性比较小,因为其他程序独占了你这儿就无法用写方式打开了,在打开库时就会报错)。

2006-11-12 20:50
做人很低调
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1268
专家分:0
注 册:2006-8-2
收藏
得分:0 
查看你RS。OPEN的权限
rs.open sql,conn,1,1为只读
rs.open sql,conn,1,3就能修改
rs.open sql,conn,3,3为最高权限...

其实我很低调,只是你不知道...
2006-11-13 12:22
ben74
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-11-6
收藏
得分:0 
顶3楼的
2006-11-16 21:12
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
还有可能是表中的字段属性中不允许空字符串。我就吃过这个亏,增加的记录中有空值,而字段的属性中却没有允许空字符串,造成无法增加新记录。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2006-11-16 21:24
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 

首先检查代码有无问题
其次检查数据库文件是否只读
如果楼主用的什么操作系统WinXP采用NTFS分区,检查分区权限设置。

2006-11-16 21:53
qskm
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2006-4-12
收藏
得分:0 
求救: 请高手看一下,为何每次执行都说update语句语法错,下面的表里有些字段为空,直接提交的

asp页面1

<form id="form2" name="form2" method="post" action="ss.asp">
<table width="98%" border="0" cellspacing="1" bgcolor="#39867B" class="font1">
<tr>
<td height="22" colspan="3" bgcolor="#C7EDDF">&nbsp;会员资料:</td>
</tr>
<%
if not recordset1.eof then
%> <tr>
<td width="36%" height="22" bgcolor="#FFFFFF">&nbsp;&nbsp; 会员编号:
<input name="id" type="text" value="<%=(Recordset1.Fields.Item("vip_id").Value)%>" size="24" maxlength="11" /></td>
<td width="36%" bgcolor="#FFFFFF">&nbsp; &nbsp;&nbsp; 会员昵称:
<input name="name1" type="text" value="<%=(Recordset1.Fields.Item("vip_name1").Value)%>" size="24" maxlength="16" /></td>
<td width="28%" rowspan="9" bgcolor="#FFFFFF"><div align="center"><%=(Recordset1.Fields.Item("vip_head").Value)%></div></td>
</tr>
<tr>
<td height="22" bgcolor="#FFFFFF">&nbsp;&nbsp; 登陆密码:
&nbsp;<a href="admin_vipactive.asp?revert="<%=(Recordset1.Fields.Item("vip_id").Value)%>"">还原密码</a></td>
<td bgcolor="#FFFFFF">&nbsp; &nbsp;&nbsp; 帐户余额:
<input name="advance" type="text" value="<%=(Recordset1.Fields.Item("vip_advance").Value)%>" size="24" maxlength="9" readonly="true" /></td>
</tr>
<tr>
<td height="22" bgcolor="#FFFFFF">&nbsp;&nbsp; 会员名字:
<input name="name" type="text" value="<%=(Recordset1.Fields.Item("vip_name").Value)%>" size="24" maxlength="8" /></td>
<td bgcolor="#FFFFFF">&nbsp; &nbsp;&nbsp; 会员财富:
<input name="cf" type="text" value="<%=(Recordset1.Fields.Item("vip_money").Value)%>" size="24" maxlength="9" /></td>
</tr>
<tr>
<td height="22" bgcolor="#FFFFFF">&nbsp;&nbsp; 联系电话:
<input name="phone" type="text" value="<%=(Recordset1.Fields.Item("vip_phone").Value)%>" size="24" maxlength="11" /></td>
<td bgcolor="#FFFFFF">&nbsp;&nbsp; 会员信用值:
<input name="credit" type="text" value="<%=(Recordset1.Fields.Item("vip_credit").Value)%>" size="24" maxlength="9" /></td>
</tr>
<tr>
<td height="22" bgcolor="#FFFFFF">&nbsp;&nbsp; 电子邮件:
<input name="mail" type="text" value="<%=(Recordset1.Fields.Item("vip_mail").Value)%>" size="24" maxlength="32" /></td>
<td bgcolor="#FFFFFF">&nbsp; &nbsp;&nbsp; 累计消费:
<input name="sumoney" type="text" value="<%=(Recordset1.Fields.Item("vip_summoney").Value)%>" size="24" maxlength="9" /></td>
</tr>
<tr>
<td height="22" bgcolor="#FFFFFF">&nbsp;&nbsp; 注册时间:
<input name="time1" type="text" value="<%=(Recordset1.Fields.Item("vip_time").Value)%>" size="24" maxlength="16" /></td>
<td bgcolor="#FFFFFF">&nbsp;&nbsp;&nbsp;&nbsp; 会员等级:
<input name="cls" type="text" value="<%=(Recordset1.Fields.Item("cls_name").Value)%>" size="24" maxlength="24" readonly="true" /></td>
</tr>
<tr>
<td height="22" bgcolor="#FFFFFF">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QQ:
<input name="qq" type="text" value="<%=(Recordset1.Fields.Item("vip_qq").Value)%>" size="24" maxlength="11" /></td>
<td bgcolor="#FFFFFF"><table width="290" border="0" cellspacing="0">
<tr>
<td width="90"><div align="right">是否锁定:</div></td>
<td width="196"><table width="72%" height="20" border="0" cellspacing="0">
<tr>
<td width="28%"><div align="right">是:</div></td>
<td width="11%"><input <%If (CStr((Recordset1.Fields.Item("vip_islocked").Value)) = CStr("1")) Then Response.Write("checked=""checked""") : Response.Write("")%> type="radio" name="islocked" value="1" /></td>
<td width="28%"><div align="right">否:</div></td>
<td width="33%"><input <%If (CStr((Recordset1.Fields.Item("vip_islocked").Value)) = CStr("0")) Then Response.Write("checked=""checked""") : Response.Write("")%> type="radio" name="islocked" value="0" /></td>
</tr>
</table></td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="22" bgcolor="#FFFFFF">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; MSN:
<input name="msn" type="text" value="<%=(Recordset1.Fields.Item("vip_msn").Value)%>" size="24" maxlength="16" /></td>
<td bgcolor="#FFFFFF">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IP地址:
<input name="ip" type="text" value="<%=(Recordset1.Fields.Item("vip_ip").Value)%>" size="24" maxlength="16" readonly="true" /></td>
</tr>
<tr>
<td height="22" colspan="2" bgcolor="#FFFFFF">&nbsp;&nbsp; 会员住址:
<input name="address" type="text" value="<%=(Recordset1.Fields.Item("vip_address").Value)%>" size="62" maxlength="60" /></td>
</tr>
<tr>
<td height="22" colspan="2" bgcolor="#FFFFFF"><div align="center">
<select name="active">
<option value="3">更新</option>
<option value="4">删除</option>
</select>
&nbsp;
<input type="submit" name="Submit2" value="提交" />
&nbsp; </div></td>
<td width="28%" bgcolor="#FFFFFF"><div align="center">上传头像</div></td>
</tr>
<%
else
response.write("<Script>alert('对不起,您要的纪录不存在!');javascript:history.back();</script>")
end if
%>
</table>
</form>
-------------------------------------------------------------------------------------------------------------------------
ss.asp页面:
dim vipid,vipname,name1,phone,mail,time1,qq,msn,address,advance,cf,cridet,sumoney,cls,islocked
vipid=trim(request("id"))
vipname=trim(request("name"))
name1=trim(request("name1"))
phone=trim(request("phone"))
mail=trim(request("mail"))
time1=trim(request("time1"))
qq=trim(request("qq"))
msn=trim(request("msn"))
address=trim(request("address"))
'advance=trim(request("advance"))
cf=trim(request("cf"))
credit=trim(request("credit"))
sumoney=trim(request("sumoney"))
'cls=trim(request("cls"))
islocked=trim(request("islocked"))

sql="update shop_vip set vip_id="&vipid&",vip_name="&vipname&",vip_name1="&name1&",vip_phone="&phone&",vip_mail="&mail&",vip_time1="&time1&",vip_qq="&qq&",vip_msn="&msn&",vip_address="&address&",vip_cf="&cf&",vip_credit="&credit&",vip_summoney="&sumoney&",vip_islocked="&islocked&" where vip_id="&vipid
conn.execute sql
response.redirect("pp.asp?vipid="&vipid&"")



2006-11-17 10:37
seden
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-10-13
收藏
得分:0 
set conn=server.createobject("adodb.connection")
conn.open"driver={microsoft access driver(*.mfb)};dbq="&server.mappath("db.mdb")
set rs=server.createobject("adodb.recordset")
rs.open"table1",conn,2,2
rs.addnew
........给表中字段赋值
rs.update
错误出现在rs.addnew这行,如果把他删除掉,则错误往下移动,直到rs.update这里.
后来我把他该成这样:
set conn=server.createobject("adodb.connection")
conn.open"driver={microsoft access driver(*.mfb)};dbq="&server.mappath("db.mdb")
set rs=server.createobject("adodb.recordset")
sql="update table1 set num=num+1 where id=1"
rs.open sql conn,2,2
.........这里是显示数据的代码
都是说"请用一个可更新的数据,或对象为只读"
但是我发现 数据表不是只读形式,也没设置密码

[此贴子已经被作者于2006-11-18 20:04:50编辑过]


2006-11-18 19:57
seden
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-10-13
收藏
得分:0 
sql="update shop_vip set vip_id="&vipid&",vip_name="&vipname&",vip_name1="&name1&",vip_phone="&phone&",vip_mail="&mail&",vip_time1="&time1&",vip_qq="&qq&",vip_msn="&msn&",vip_address="&address&",vip_cf="&cf&",vip_credit="&credit&",vip_summoney="&sumoney&",vip_islocked="&islocked&" where vip_id="&vipid
vipid,vipname,name1.......如果这些变量有文本型或字符型的。就要加单引号。
vip_id='"&vipid&"',vip_name='"&vipname&"'..........后面几个也一样。

2006-11-21 21:14
seden
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2005-10-13
收藏
得分:0 
sql="update shop_vip set vip_id="&vipid&",vip_name="&vipname&",vip_name1="&name1&",vip_phone="&phone&",vip_mail="&mail&",vip_time1="&time1&",vip_qq="&qq&",vip_msn="&msn&",vip_address="&address&",vip_cf="&cf&",vip_credit="&credit&",vip_summoney="&sumoney&",vip_islocked="&islocked&" where vip_id="&vipid
如果vipid,vipname,name1。。。。。是文本型或字符型,就要加单引号
vip_id='"&vipid&"',vip_name='"&vipname&"',vip_name1='"&name1&"'.........后面的也一样要用,只要是字符型的就得用。

2006-11-21 21:19
快速回复:[求助]数据库不能更新
数据加载中...
 
   



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

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