我在VS2010中创建了使用2007 Access数据库的VB.NET应用程序,名为MenuDB.mdb
。在开发过程中,一切都很好。
现在我正在发布它,我得到了奇怪的错误,因为某些原因应用程序没有连接到数据库。
我安装了应用程序并运行它但是一旦打开就会出现这个错误:
System.Data.OleDb.OleDbException (0x80004005): Could not find file
'C:\Users\Administrator\AppData\Local\Apps\2.0\Data\OV86PXJA.K3R\8575R5AY.95Z\menu..tion_0d4fa454d69e8e6b_0001.0000_8340d263807cbb71\Data\MenuDB.accdb'.
我知道问题与我将应用程序与数据库相关联的方式有关,但我不知道哪种方式是正确的。在解决方案资源管理器中,我将MenuDB.accdb
的构建类型更改为“内容”(之前它是嵌入式资源“。但它无论如何都不起作用。在我的App.config中,我有以下连接字符串:
connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\MenuDB.accdb"
我希望在部署应用程序时,数据库应该只位于应用程序文件夹中,无论它安装在何处。我怎么能这样做?
我不介意以这样的方式部署它,我需要在目标机器上将数据库粘贴到某个地方 - 只要它有效。
答案 0 :(得分:0)
如果您有多个用户使用相同或类似的数据库,并且无权访问SQL服务器(MySQL,MSSQL或其他),则将数据库放在中央位置(最好是网络位置),以便全部用户可以访问和更改连接字符串,以适应网络上的数据库位置。
让它知道,Access在进行简单的数据检索/提交时最多可以处理10个用户,但如果你打开它而其他人通过数据对象访问,那么你可以将它们锁定。