Asp/asp.net下Access数据库查询和更新的各种问题解决方案
2011-03-29 11:19
375 查看
这里仅以ASP为例,asp.net根据不同语言(VBScript, C#等可能略有差异)调整相关语句即可。
1. 无法连接数据库相关的错误:
(1)数据库连接字符串有误:
有人使用:
connstr="DBQ="+server.mappath("../data/dbname.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
这个不太具有通用性,有时会在一些服务器上出错。使用以下连接字符串更好一些:
connstr="provider=microsoft.Jet.OLEDB.4.0;data source='" & Server.Mappath("../data/dbname.mdb") & "'"
(2)有时还会遇到错误,常见的出错原因可能为数据库的父目录问题,诸如上述的"../data/dbname.mdb",它是指向当前目录的上一级目录下的某个目录下的数据库文件或直接的数据库文件),由于Server 2003 IIS的设置问题,需要点击所属站点右键 - 属性 - 主目录选项卡再点击“配置”,在应用程序配置的“选项”选项卡上点中“启用父路径”。
2、数据库连接正确了,但仍然无法更新?
常见的具体错误信息可能为:
(1)Microsoft JET Database Engine (0x80040E09) 不能更新。数据库或对象为只读
(2)Microsoft OLE DB Provider for ODBC Drivers (0x80004005)[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。
(3)Microsoft JET Database Engine (0x80004005) 操作必须使用一个可更新的查询。
原因:数据库权限问题引起。
解决办法有以下几种(针对不同的服务器可能解决办法不一样,在这里假设网站主目录为wwwroot):
A、在wwwroot文件夹上面点击右键-“属性”-取消“只读”,此方法最简单、偶尔有效。
B、在您的数据库文件上文件夹上面点击右键-“属性”-“安全”-添加用户:“IUSR_计算机名” 并开放“IUSR_计算机名”的读取、写入权限。
注:XP系统下可能点击右键看不到“安全”选项,请先打开“工具”-“文件夹选项”-“查看”-取消“使用简单文件共享(推荐)” 然后即可在属性中找到“安全”选项。
C、在wwwroot文件夹上面点击右键-“属性”-“web共享”-“共享文件夹”
如果是在Server2003中,还有可能的错误及解决方法是:
asp.net无法运行,很可能是以下原因:
1、IIS没有启用或没有安装(解决办法:安装并配置好IIS的设置);
2、没安装.net框架(解决办法:安装.net相关版本);
3、.net的相关服务没有启用(“计算机管理 - 服务和应用程序 - IIS管理器 - Web服务扩展”中启用asp,asp.net等服务)。
4、路径或权限问题(见上述)。
1. 无法连接数据库相关的错误:
(1)数据库连接字符串有误:
有人使用:
connstr="DBQ="+server.mappath("../data/dbname.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
这个不太具有通用性,有时会在一些服务器上出错。使用以下连接字符串更好一些:
connstr="provider=microsoft.Jet.OLEDB.4.0;data source='" & Server.Mappath("../data/dbname.mdb") & "'"
(2)有时还会遇到错误,常见的出错原因可能为数据库的父目录问题,诸如上述的"../data/dbname.mdb",它是指向当前目录的上一级目录下的某个目录下的数据库文件或直接的数据库文件),由于Server 2003 IIS的设置问题,需要点击所属站点右键 - 属性 - 主目录选项卡再点击“配置”,在应用程序配置的“选项”选项卡上点中“启用父路径”。
2、数据库连接正确了,但仍然无法更新?
常见的具体错误信息可能为:
(1)Microsoft JET Database Engine (0x80040E09) 不能更新。数据库或对象为只读
(2)Microsoft OLE DB Provider for ODBC Drivers (0x80004005)[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。
(3)Microsoft JET Database Engine (0x80004005) 操作必须使用一个可更新的查询。
原因:数据库权限问题引起。
解决办法有以下几种(针对不同的服务器可能解决办法不一样,在这里假设网站主目录为wwwroot):
A、在wwwroot文件夹上面点击右键-“属性”-取消“只读”,此方法最简单、偶尔有效。
B、在您的数据库文件上文件夹上面点击右键-“属性”-“安全”-添加用户:“IUSR_计算机名” 并开放“IUSR_计算机名”的读取、写入权限。
注:XP系统下可能点击右键看不到“安全”选项,请先打开“工具”-“文件夹选项”-“查看”-取消“使用简单文件共享(推荐)” 然后即可在属性中找到“安全”选项。
C、在wwwroot文件夹上面点击右键-“属性”-“web共享”-“共享文件夹”
如果是在Server2003中,还有可能的错误及解决方法是:
asp.net无法运行,很可能是以下原因:
1、IIS没有启用或没有安装(解决办法:安装并配置好IIS的设置);
2、没安装.net框架(解决办法:安装.net相关版本);
3、.net的相关服务没有启用(“计算机管理 - 服务和应用程序 - IIS管理器 - Web服务扩展”中启用asp,asp.net等服务)。
4、路径或权限问题(见上述)。
相关文章推荐
- ASP.Net下如何解决关于Access数据库“操作必须使用一个可更新的查询”问题
- 如何解决ADO.NET访问Access数据库出现"操作必须使用一个可更新的查询"的问题
- 如何解决ADO.NET访问Access数据库出现"操作必须使用一个可更新的查询"的问题
- 如何解决ADO.NET访问Access数据库出现"操作必须使用一个可更新的查询"的问题(非原创,摘自书中)
- 关于ASP.NET“操作必须使用一个可更新的查询”问题的解决方法
- ASP.NET状态服务及session丢失问题解决方案总结
- asp.net 解决各种用户控件各种虚拟目录各种不同级目录的图片路径的各种恶心的问题
- ASP.NET SESSION丢失问题解决方案
- ASP.NET状态服务及session丢失问题解决方案总结
- asp.net updatepanel里gridview更新需要点鼠标两次问题解决
- asp.net 无法更新ACCESS数据库的问题
- ASP.NET在线用户列表精确版——解决用户意外退出在线列表无法及时更新问题
- ASP.NET在线用户列表精确版——解决用户意外退出在线列表无法及时更新问题
- asp.net mvc使用的心得和问题的解决方法(陆续更新ing)
- ASP.NET状态服务及session丢失问题解决方案总结
- ASP.NET画面跳转实现及其传值问题解决方案
- ASP.NET Session丢失问题解决方案总结及判断Session是否过期【转载】
- Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)
- ASP.NET 状态服务 及 session丢失问题解决方案总结
- 解决ASP.NET中的各种乱码问题 转