2

如何在本地数据库上使用连接字符串,以允许您将项目文件夹从一台计算机传输到另一台计算机,而无需修改连接字符串?

不像这样

connection_String As String = "Data Source=C:\Users\Kyle\Desktop\CSCI_388_Group_Project\CSCI_388_Group_Project\CSCI_388_Group_Project\CSCI_388_Group_Project_Database.sdf"

更像这样

connection_String As String = "Data Source=|DataDirectory|\CSCI_388_Group_Project_Database.sdf"

如果我尝试将第二个示例输入到数据库属性下的连接字段中,则会收到非法字符错误。

4

3 回答 3

3

Environment类包含您需要的大部分路径。

你可以打电话Environment.GetFolderPath来获取一个特殊的目录。例如,要获取My Documents目录,请调用Environment.GetFolderPath(Environment.SpecialFolder.Personal).

您可以在此处浏览所有特殊文件夹:http:
//msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx

具体而言,在您的示例中,您将使用以下内容:

connection_String As String = _
    "Data Source=" & 
    Path.Combine(
        Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
        "CSCI_388_Group_Project_Database.sdf" )

替代方案:
是否可以只询问用户?如果它在他们的桌面上,他们可能会移动它。

于 2012-10-09T17:57:10.977 回答
2

如果您决定将sdf文件保存在您将驻留的同一文件夹中exe,那么您可以这样做。

Dim ExeFolder As String = AppDomain.CurrentDomain.BaseDirectory
Dim connection_String As String = "Data Source=" & ExeFolder & "CSCI_388_Group_Project_Database.sdf"  

希望能帮助到你 !

于 2012-10-09T18:10:13.367 回答
1

一种简单的方法是使用环境变量来指定文件夹的路径。

然后在您的 VB 程序中使用Environ 函数获取环境变量设置并使用字符串操作来构建您的连接字符串。

如果未设置环境变量,您将需要有一个默认值。

但是,当您启动应用程序时,您可以在设置环境变量的脚本中执行此操作。

第二种方法是在应用程序命令行上指定路径名,这样当应用程序启动时,它将使用命令行指定路径。

第三种方法是拥有一个您使用的 Windows 注册表项。然后,与环境变量类似,您在 Windows 注册表中查询文件夹路径,然后从中构建您的连接字符串。

使用第三种方法,您可以让应用程序安装程序插入注册表项。

第四种方法是使用包含文件夹路径条目的 .ini 文件。

于 2012-10-09T17:59:32.030 回答