asp + access 数据库为什么修改不了? 10

<%dimconn,connstronerrorresumenextconnstr="DBQ="+server.mappath("pins/data/admin.asp"... <%
dim conn,connstr
on error resume next
connstr="DBQ="+server.mappath("pins/data/admin.asp")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
Set conn=Server.CreateObject("ADODB.CONNECTION")
conn.open connstr
%>

<%
dim s_sql,s_type,s_title,s_msg,s_prepage
s_type=request("stype")
s_id=request("sid")

'---------------------------------------------------------------------------------

if(s_type="proc") then
dim s_productname,s_producttype,s_productcolor,s_productpinpai,s_productxh,s_productcont
s_productname=request("product_name")
s_producttype=request("product_type")
s_productpinpai=request("product_pinpai")
roj=request("roc")
s_productxh=request("product_xh")
s_productcont=request("product_cont")
s_productcolor=request("product_color")
s_pic=request("xy_content")
s_product_s_type=request("product_s_type")
ok=request("ok")

s_sql="update product_cont set product_name='"+s_productname+"',product_type='"&s_producttype&"',product_pinpai='"+s_productpinpai+"',product_xh='"+s_productxh+"',product_cont='"+s_productcont+"',product_color='"+s_productcolor+"',product_s_type='"+s_product_s_type+"',ok="+ok+" ,product_pic='"+s_pic+"'where id="&s_id
s_msg="alert('产品内容修改成功!');"
s_prepage="window.document.location.href='com_pro.asp?page="&roj&"';"
end if

conn.execute(s_sql)
conn.close

response.write "<script language='javascript'>" & chr(13)
response.write s_msg & Chr(13)
response.write s_prepage &Chr(13)
response.write "</script>" & Chr(13)
Response.End

%>
展开
 我来答
genson_bd
2011-05-17 · 超过120用户采纳过TA的回答
知道小有建树答主
回答量:299
采纳率:0%
帮助的人:146万
展开全部
数据如果修改不了首先要检查MDB的读取权限够不够
再是看数据表的字段格式是否正确,你录入的字符串有没有超出字段的大小。
然后是从程序入手,看程序有没有UPDATE

你可以把on error resume next这个给去掉再调试程序,这样可以看出是哪里出了问题的!
追问
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' 

[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。

/pins/update_typeok.asp,行 27

这是提示的错误信息,整个typeok.asp的第27行代码如下:
conn.execute(s_sql)
conn.close
追答
你的s_sql语句的问题吧
正常你试下conn.execute("select * from table")
看能不能执行,如果不能就是你的数据库链接上的问题,如果OK你就把语句贴出来,肯定是语句的问题了.
再不然就是你用了conn.close,但是在后面你有执行查询语句导致问题
百度网友31610bb60
2011-05-19
知道答主
回答量:15
采纳率:0%
帮助的人:8.5万
展开全部
大哥!

s_sql="update product_cont set product_name='"+s_productname+"',product_type='"&s_producttype&"',product_pinpai='"+s_productpinpai+"',product_xh='"+s_productxh+"',product_cont='"+s_productcont+"',product_color='"+s_productcolor+"',product_s_type='"+s_product_s_type+"',ok="+ok+" ,product_pic='"+s_pic+"'where id="&s_id
注意语法!!

例子
update hy set sex='男',mm='456' where zh ='lidongyun4 '

还有你表字段结构!如不是数字 就不加单引号!如果是文本的话就要加单引号!
给你改了下 。
s_sql="update product_cont set product_name='"&s_productname&"',product_type='"&s_producttype&"',product_pinpai='"&s_productpinpai&"',product_xh='"&s_productxh&"',product_cont='"&s_productcont&"',product_color='"&s_productcolor&"',product_s_type='"&s_product_s_type&"',ok='"&ok&"',product_pic='"&s_pic&"'where id="&s_id
response.Write s_sql '这句可删除 用于查看你传过来的值是不是传真确了。如果你要看的话把后面的语句全部删了。。 或屏蔽,如果正确了 就还原。把这句删了就行了!

为了得十分帮到低吧

<%
dim conn,connstr
on error resume next
connstr="DBQ="+server.mappath("pins/data/admin.asp")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
Set conn=Server.CreateObject("ADODB.CONNECTION")
conn.open connstr
%>

<%
dim s_sql,s_type,s_title,s_msg,s_prepage
s_type=request("stype")
s_id=request("sid")

'---------------------------------------------------------------------------------

if(s_type="proc") then
dim s_productname,s_producttype,s_productcolor,s_productpinpai,s_productxh,s_productcont
s_productname=request("product_name")
s_producttype=request("product_type")
s_productpinpai=request("product_pinpai")
roj=request("roc")
s_productxh=request("product_xh")
s_productcont=request("product_cont")
s_productcolor=request("product_color")
s_pic=request("xy_content")
s_product_s_type=request("product_s_type")
ok=request("ok")

s_sql="update product_cont set product_name='"&s_productname&"',product_type='"&s_producttype&"',product_pinpai='"&s_productpinpai&"',product_xh='"&s_productxh&"',product_cont='"&s_productcont&"',product_color='"&s_productcolor&"',product_s_type='"&s_product_s_type&"',ok='"&ok&"',product_pic='"&s_pic&"'where id="&s_id

conn.execute(s_sql)
conn.close
response.Write s_sql

%>

打开数据库查询,然后把输出的值直接复制到查询语句里面!运行看看就知道!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
295440026
2011-05-28 · TA获得超过938个赞
知道小有建树答主
回答量:1120
采纳率:57%
帮助的人:263万
展开全部
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。

/pins/update_typeok.asp,行 27

这是提示的错误信息,整个typeok.asp的第27行代码如下:
conn.execute(s_sql)
conn.close

这个就是文件夹的权限不够啊 。。。。右击站点的文件夹属性。安全,把User这个用户改为完全控制就可以了 。。。这个问题 。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chuan8320
2011-05-17 · 超过27用户采纳过TA的回答
知道答主
回答量:65
采纳率:100%
帮助的人:61.8万
展开全部
sql没有执行吧,应该是你的条件 if(s_type="proc") then 这个有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沧海雄风2009
2011-05-17 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2824万
展开全部
如果方便的话 把源码包邮件发过来

我肯定能帮你解决
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式