VB.net连接到嵌入式数据库

时间:2013-02-11 17:57:37

标签: vb.net database-connection

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

我已将.mdb文件添加到项目资源中,并将其属性设置为“Embedded Resource”和“Do not copy”。但是现在如何引用数据库来创建连接?

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

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

3 个答案:

答案 0 :(得分:2)

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

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

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

没有。 You cant read an Access file from a stream并且XML dB的并发支持比Access数据库更少。

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

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

对不起,我从来没有关闭它。

我的解决方案甚至比提出的解决方案更简单。您可以将.mdb文件添加到项目本身,而不是弄乱整个"资源"商业。然后将文件的“复制到输出”属性设置为“#34;不要复制"”。因此.mdb被编译到应用程序中,但用户无法使用文件本身。