1

我有一个用 VB.NET 编写的独立 Windows 窗体应用程序,该应用程序当前连接到本地 Access DB(.mdb 文件)并使用多个表中的数据。它从不写入也不修改数据库。我试图弄清楚如何保护这个数据库,这样用户就无法访问它。我认为最好的方法是将数据库存储为项目中的嵌入式资源。但是,我不知道如何使这项工作。

我已将 .mdb 文件添加到项目资源中,并将其属性设置为“嵌入式资源”和“请勿复制”。但是现在我如何引用数据库来创建连接?

在我使用连接字符串“Provider=Microsoft.Jet.OLEDB.4.0; Data Source=MyDatabase.mdb”之前

现在如何参考嵌入式资源编写连接字符串?

4

3 回答 3

2

“我认为最好的方法是将数据库存储为项目中的嵌入式资源。”

这通常与旧的 skool 安全性有关,在过去,使用 Access dBs 作为后端的 DotNetNuke 开发人员实际上将 .mdb 重命名为 .resources,因为您无法从 Web 下载资源文件。

“将数据库导出到 xml 或类似的东西然后使用流阅读器而不是数据库连接会更好吗?”

不可以。您无法从流中读取 Access 文件,而且 XML dB 的并发支持比 Access 数据库还要少。

如果您确实需要保护数据,那么您绝对选择了错误的数据存储。

@JohnBus​​tos 写道“远程存储数据库并让程序通过互联网访问它。”

请不要这样做。如果有任何东西将其放在网络共享上并限制访问。然后看看将访问 dB 升级到 SQL Server。

于 2013-02-11T22:32:26.693 回答
0

是的,我遇到了同样的问题,我将数据库转换为 XML 甚至是嵌入的 TXT 文件。它工作得很好!

于 2013-02-12T11:08:57.113 回答
0

对不起,我从来没有关闭过这个。

我的解决方案甚至比那些建议的更简单。您可以将 .mdb 文件添加到项目本身,而不会弄乱整个“资源”业务。然后将文件的复制到输出属性设置为“不复制”。因此 .mdb 被编译到应用程序中,但文件本身对用户不可用。

于 2014-11-03T18:27:34.387 回答