通过ASP.net通过ODBC连接到Access数据库

问题描述:

我想通过Asp.net应用程序设置到MS Access的ODBC连接。 我不断收到此错误信息:通过ASP.net通过ODBC连接到Access数据库

ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver] The Microsoft Office Access database engine cannot open or write to the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view and write its data. 
ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed 
ERROR [HY000] [Microsoft][ODBC Microsoft Access Driver] The Microsoft Office Access database engine cannot open or write to the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view and write its data 

我明白,也许这已经是与权限,因为它在本地的应用程序(控制台应用程序)工作正常。

已经tryed给读\写权限“IUsr_my机”,但它仍然没有解决问题

TKS

这不是权限。这就是数据库实际上在MS Access中打开的地方。使用MS Access打开Access数据库不同于从另一个程序连接Access数据库。 MS Access会在您处理数据时锁定分贝。你需要找到谁在MS Access中打开它,并在头部击败它们,直到它们关闭Access程序。

你这样做后,报告给我的办公室,所以我可以自己挑选Access作为网络数据库。这是一件非常愚蠢的事情,因为Access是一个进程内或桌面类的引擎。 Web站点确实需要像SQL Server Express这样的服务器类引擎,可以更好地处理并发用户。

+0

什么?访问吮吸?我应该尝试sql服务器?为什么我之前没有想到呢?哦,是的,我做到了。使用访问不是愚蠢的,它的勇气,所以你不应该威胁那些试图做这样的访问疯狂的人!不管怎么说,这个小费都可以用。 (没有工作的方式) – DJPB 2010-02-15 16:26:16

+0

@DJPB你不必使用SQL服务器 - 只是不使用访问。这不是盲目的仇恨。我同样对sqlite,OpenOffice Base和其他任何_in process_引擎持怀疑态度。如果你宁愿去Oracle,MySql,PostGRESQL,甚至是DB2,都是我的客人。只是不要在网络上使用进程内引擎。 – 2010-02-15 16:56:35

+0

只是开玩笑,不要误解我的意思。我已经连接到几个数据库引擎,我同意这是一个更好的方法。例如,我只是好奇地想知道access或excel的行为。我看到了......顺便说一句,(如果有人面临同样的问题),当你给“everyone”组授予读写权限时,它就会起作用。但这是一个糟糕的政策 – DJPB 2010-02-15 17:14:17

对于那些在这里崩溃与相同的错误。尝试将MDB文件放在您的域文件夹下,然后创建DNS。这解决了我的问题。