【发布时间】:2011-08-22 00:36:21
【问题描述】:
我正在尝试使用 System.Data.OleDb.OleDbConnection 连接到 Access 数据库文件。我需要以只读模式连接,因为另一个应用程序同时使用它。我可以读/写连接到数据库没有问题,但似乎无法在任何地方找到正确的只读字符串。
我试过了:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Persist Security Info=False;Mode=Read
Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Persist Security Info=False;Extended Properties="ReadOnly=true;"
谢谢。
编辑:
(我应该在原始问题中提供更多信息。)
我可以在 local 机器上成功连接到 access 数据库,但是当我尝试使用连接字符串连接到 remote 机器上的 access 数据库时
Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Persist Security Info=False;Mode=Read
我会收到以下错误:
System.Data.OleDb.OleDbException (0x80004005): The Microsoft Office Access database engine cannot open or write to the file '{0}'. It is already opened exclusively by another user, or you need permission to view and write its data.
我的应用程序正在本地系统帐户下的 Windows 服务中运行。
【问题讨论】:
-
尝试将模式设置为“adModeRead”(不带引号)。 See MSDN Reference。 (不做这个答案,因为我无法验证它是否有效,只是关闭 MSDN 数据。)
-
我尝试将 Mode 设置为 'adModeRead' 但它会引发 'System.Data.OleDb.OleDbException (0x80040E73):初始化字符串的格式不符合 OLE DB 规范。'感谢您的建议。
标签: ms-access connection-string oledb