0

我希望我的用户看不到我正在使用的 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(最后一行,向右滚动)更改为其他内容?

我找到了一篇关于如何嵌入资源的文章,但它们似乎不适用于连接字符串。此外,似乎(至少在 2008 年),要访问 MS Access 数据库,必须将其从嵌入状态中取出。这将使这种嵌入在我的程序中变得毫无用处。

非常感谢任何帮助。

4

1 回答 1

0

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

由于程序集是静态结构,因此无法更改任何位。因此,像数据库这样动态的东西肯定必须先从程序集中取出,然后才能使用。

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

看看这个答案,看看如何。

于 2013-02-01T10:50:06.593 回答