将Access * .accdb数据库嵌入到.NET应用程序中

时间:2013-01-22 10:14:16

标签: .net database visual-studio-2010 ms-access embedded-database

我希望我的用户无法看到我正在使用的MS Access * .accdb数据库。因此,我想将它嵌入到组件中。我该怎么做?

我的猜测是修改连接字符串。

使用导入向导自动建立与数据库的连接。连接字符串可以在文件Settings.Designer.vb中找到,并且写成如下:

Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.SpecialSettingAttribute(Global.System.Configuration.SpecialSetting.ConnectionString), _
Global.System.Configuration.DefaultSettingValueAttribute("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\MyDatabase.accdb;" & "Persist Security Info=True")

有没有办法可以将Data Source=|DataDirectory|\MyDatabase.accdb(最后一行,向右滚动)更改为其他内容?

我在how embed resources上发现了一篇文章,但它们似乎不适用于连接字符串。此外,似乎(至少在2008年)to access an MS Access Database, it had to be taken out of its embedded state。这会使我的程序中嵌入无用。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我确认:如果目的是隐藏它,尝试将数据库嵌入到程序集中是没有意义的。

由于程序集是静态结构,因此无法更改位。因此,在使用数据库之前,必须先将 out 作为数据库的动态。

为了让我的用户不要看到我正在使用的数据库,我选择了将其复制到&AppData&目录的解决方案。不是很安全(尽管有密码保护),但至少不是很明显。

看看这个answer,看看如何。