如何构建vb.net应用程序,以便在发布时轻松连接数据库?

时间:2012-11-27 18:49:54

标签: vb.net visual-studio-2010 ms-access-2007 connection-string publish

我在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"

我希望在部署应用程序时,数据库应该只位于应用程序文件夹中,无论它安装在何处。我怎么能这样做?

修改

我不介意以这样的方式部署它,我需要在目标机器上将数据库粘贴到某个地方 - 只要它有效。

1 个答案:

答案 0 :(得分:0)

如果您有多个用户使用相同或类似的数据库,并且无权访问SQL服务器(MySQL,MSSQL或其他),则将数据库放在中央位置(最好是网络位置),以便全部用户可以访问和更改连接字符串,以适应网络上的数据库位置。

让它知道,Access在进行简单的数据检索/提交时最多可以处理10个用户,但如果你打开它而其他人通过数据对象访问,那么你可以将它们锁定。