2013-05-11 68 views
1

在Visual Basic 2010 Express中,我使用SQL语句读取,写入,编辑......一个mdb数据库文件。但是,目前,它指向我本地目录上的一个位置。SQL数据库位置

有没有办法将文件嵌入到VB程序中并更改SQL语句以写入它?

有点像如何HTML,你可以将整个网站的文件夹,这么长时间,作为根例如包含文件夹“图片”,然后将它知道如何寻找在那里...

回答

1

我不知道你是如何说明当前连接字符串为您的每个sql语句,但是您可以采用的一种方法是将.mdb文件放在应用程序的根文件夹中,然后使用通用的

Application.Info.DirectoryPath 

提供mdb文件的基本位置。一个更好的想法然而(尤其要避免使用与UAC和权限问题会放置在所有用户的应用程序数据文件夹中的mdb文件,并使用同样通用指针

Application.CommonAppDataPath 

随着一些明智的实验,你应该能够在那个最适合您自己的要求满足了解决办法。

1

你参考到您的MDB文件可能会作为SQL连接字符串包含在您的app.config文件中。在那里你可以找到文件本身的完整路径。如果将其更改为相对路径(例如,只是MDB文件本身的名称,没有文件夹或类似的东西),那么它应该查看可执行文件的目录。

所以,如果你的连接字符串是:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyFolder1\mydatabase.mdb;User Id=admin;Password=; 

你会改变为:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mydatabase.mdb;User Id=admin;Password=; 
0

是作为资源嵌入不,你不能使用Access数据库。

你可以设置连接字符串这样

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\myDatabaseFile.mdb;Persist Security Info=False; 

,然后在你的启动代码,你可以用一个呼叫DataDirectory目录替代设置为

Dim commonAppData = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) 
AppDomain.CurrentDomain.SetData("DataDirectory", commonAppData) 

缺乏这个调用然后DataDirectory目录预定义值将是当前应用程序的启动文件夹中。

Some info on |DataDirectory| sustitution string