一个数据库连接问题!Microsoft JET Database Engine (0x80004005) 操作必须使用一个可更新的查询。

问题描述

小弟有一个登陆系统的时候出问题了,用的是ACCESS的OLEDB的数据库连接方式,但是在管理员登陆时出错。具体情况是:浏览器提示:MicrosoftJETDatabaseEngine(0x80004005)操作必须使用一个可更新的查询。/WishWall/admin/chklogin.asp,第36行我的chklogin.asp的内容是:<!--#includefile="conn.asp"--><!--#includefile="md5.asp"--><%'用于防止sql注入DimLove_NoSqlHack_AllStr,Love_NoSqlHack_Str,Love_NoSqlHack_ComeUrlGet,Love_NoSqlHack_ComeUrlPost,Love_NoSqlHack_Get,Love_NoSqlHack_Post,Love_NoSqlHack_iLove_NoSqlHack_AllStr="'|;|and|chr(|exec|insert|select|deletefrom|update|mid(|master."Love_NoSqlHack_ComeUrlPost=Request.FormLove_NoSqlHack_Str=Split(Love_NoSqlHack_AllStr,"|")'PostIfLove_NoSqlHack_ComeUrlPost<>""thenForEachLove_NoSqlHack_PostInRequest.FormForLove_NoSqlHack_i=0ToUbound(Love_NoSqlHack_Str)IfInstr(LCase(Request.Form(Love_NoSqlHack_Post)),Love_NoSqlHack_Str(Love_NoSqlHack_i))<>0ThenResponse.Write("请误使用非法途径进入本网站!")Response.EndEndifNextNextEndif%><%AdminName=trim(Request.form("AdminName"))password=trim(Request.form("password"))ifAdminName=""orpassword=""thenResponse.Redirect("adminlogin.asp")endifpassword=md5(trim(password),16)setrs=server.createobject("adodb.recordset")sql="select*fromadminwhereAdminName='"&AdminName&"'andpassword='"&password&"'"setrs=Conn.Execute(sql)ifnotrs.eofandnotrs.bofthenConn.Execute("updateadminsetLogincount=Logincount+1,LoginTime='"&now()&"',LoginIP='"&Request.ServerVariables("REMOTE_ADDR")&"'whereAdminName='"&AdminName&"'andpassword='"&password&"'")Session("Admin")=rs("AdminName")Session("IsAdmin")=trueSession.timeout=900Response.Redirect("adminindex.asp")elseResponse.Write"请输入正确的管理员名字和密码!<ahref='javascript:history.back(-1)'>返回</a>"Response.Endendifrs.closesetrs=nothingCloseConn()%>第36行是Conn.Execute("updateadminsetLogincount=Logincount+1,LoginTime='"&now()&"',LoginIP='"&Request.ServerVariables("REMOTE_ADDR")&"'whereAdminName='"&AdminName&"'andpassword='"&password&"'")希望各位大侠能给小弟解决一下,不甚感激!!!!!

解决方案

解决方案二:
Conn.Execute("updateadminsetLogincount=Logincount+1,LoginTime='"&now()&"',LoginIP='"&Request.ServerVariables("REMOTE_ADDR")&"'whereAdminName='"&AdminName&"'andpassword='"&password&"'")==Conn.Execute("updateadminsetLogincount=Logincount+1,LoginTime=#"&now()&"#,LoginIP='"&Request.ServerVariables("REMOTE_ADDR")&"'whereAdminName='"&AdminName&"'and[password]='"&password&"'")
解决方案三:
Conn.Execute("updateadminsetLogincount=Logincount+1,LoginTime='"&now()&"',LoginIP='"&Request.ServerVariables("REMOTE_ADDR")&"'whereAdminName='"&AdminName&"'and[password]='"&password&"'")
解决方案四:
现在已经调试成功了,我把他们加到dreamwear里面,然后建了个新站点就可以了,我也不知道为什么,各位大侠能给小弟解释一下是为什么吗?多谢!
解决方案五:
1.password在Access中是关键字,要用[]包起来2.Access中的日期定界符是
解决方案六:
#出現這個錯誤一般是由於資料庫連接未正常關閉然後又打開,即你看MDB時會看到有個鎖定的狀態這種情況可重啟IIS,再重新登錄看看

时间: 2024-09-20 00:15:50

一个数据库连接问题!Microsoft JET Database Engine (0x80004005) 操作必须使用一个可更新的查询。的相关文章

Microsoft JET Database Engine(0x80004005)未指定错误的解决方法_应用技巧

今天在给一台新的电脑安装IIS,安装成功,建立虚目录后,运行一个已经在别的机器上的正确的asp文件,就是不成功,提示:Microsoft JET Database Engine (0x80004005) 未指定的错误,于是我又将这个文件放到另一台机器上运行,正常,一点问题没有,但在这台机器上就出问题.这样就排除了asp文件问题了.于是就想到,重装IIS.重装后,还是一样.最后发现是硬盘的分区有问题,那些安装好IIS后就能asp程序的电脑是fat32分区,这台是ntfs分区.需要给c:\windo

Microsoft JET Database Engine(0x80004005)未指定错误的解决方法

今天在给一台新的电脑安装IIS,安装成功,建立虚目录后,运行一个已经在别的机器上的正确的asp文件,就是不成功,提示:Microsoft JET Database Engine (0x80004005) 未指定的错误,于是我又将这个文件放到另一台机器上运行,正常,一点问题没有,但在这台机器上就出问题.这样就排除了asp文件问题了.于是就想到,重装IIS.重装后,还是一样.最后发现是硬盘的分区有问题,那些安装好IIS后就能asp程序的电脑是fat32分区,这台是ntfs分区.需要给c:\windo

asp连接access错误:Microsoft JET Database Engine (0x80004005) 未指定的错误

在一次配置网站空间的过程中,把一个调试好的程序上传到服务器,出现连接数据库错误:Microsoft JET Database Engine (0x80004005) 未指定的错误 出现错误后,百般调试不得其解.先后给ACCESS数据库目录所有权限,数据库文件修复压缩等等方法,问题依然出现,后来翻阅一些资料后,找到解决方法! 连接ACCESS数据库错误 错误类型:Microsoft JET Database Engine (0x80004005) 未指定的错误 原因:在服务器安全配置中,没有开放I

解决Access出现Microsoft JET Database Engine (0x80004005)未指定的错误_Access

Microsoft JET Database Engine (0x80004005)未指定的错误,这个错误只有在使用Access数据库时才能出现   出现以上问题,可以使用以下步骤进行解决问题:   1.系统可能没有注册msjetoledb40.dll,解决办法是    点 开始--->运行, 输入 regsvr32 msjetoledb40.dll, 回车即可: 2.数据库所在文件夹权限    打开办法是:打开我的电脑,然后点菜单上的"文件夹选项"--->查看,然后把&q

iis中asp存取Access时报&quot;Microsoft JET Database Engine (0x80004005)未指定错误&quot;的解决方法

操作系统是winxp,在iis中asp存取Access时报"Microsoft JET Database Engine (0x80004005)未指定错误",把IIS里"目录安全性"中的"匿名访问和身份验证控制"取消,换成"集成 WINDOWS身份验证"即可.

iis“Microsoft JET Database Engine(0x80004005)未指定错误”

出现这个问题的朋友很多所以小编在这里为大家整理一下详细的解决方案. 一般情况下asp可以正常运行,但只要连接数据库就提示,Microsoft JET Database Engine 错误 '80004005',我的电脑因为用批处理清理文件,所以不能运行了, 只 1.查看数据库连接语句没有发现错误: 2.查看文件夹的权限已经全部给了everyone: 3.打开数据库的同时,系统会在临时文件夹 %SystemRoot%/temp/ 下创建临时文件,而 % SystemRoot%/temp/ 的权限不

Microsoft JET Database Engine 错误 &#039;80004005&#039; 错误

  一个批处理清理了一下电脑垃圾,结果ACC数据库就出错. 系统环境 Windows 2003+IIS6+NTFS ASP+Access 错误信息 Microsoft JETDatabase Engine 错误 '80004005' 未指定的错误 故障原因 此类错误一般出现于文件系统为NTFS格式中,是IIS匿名帐号(IUSR_计算机名)对相关文件.文件夹操作权限不足引起的. 一.存放数据库文件夹对IIS匿名帐号没有写入.修改权限,错误表现为无法对数据库进行更新.写入 二. 系统临时文件夹目录对

Microsoft JET Database Engine 错误 &#039;80004005&#039; 未指定的错误的完美解决方法_应用技巧

一般情况下asp可以正常运行,但只要连接数据库就提示,Microsoft JET Database Engine 错误 '80004005',我的电脑因为用批处理清理文件,所以不能运行了, 只1.查看数据库连接语句没有发现错误: 2.查看文件夹的权限已经全部给了everyone: 3.打开数据库的同时,系统会在临时文件夹 %SystemRoot%/temp/ 下创建临时文件,而 %SystemRoot%/temp/ 的权限不够 解决:%SystemRoot%/temp/ 的权限加上(IUSER_

Microsoft JET Database Engine 错误 标准表达式中数据类型不匹配。

问题描述 Microsoft JET Database Engine 错误 标准表达式中数据类型不匹配. <% Dim XMID,pages2,xyz XMID = request("XMID") pages = request("pages") pages2 = request("pages2") xyz= request("xyz") Dim Rs2 Set Rs2 = oConn.Execute("SEL