什么是定义连接字符串VB的正确方法

时间:2013-07-06 18:56:15

标签: vb.net string connection

我的Visual Basic项目使用此连接字符串:

Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Admin\Desktop\IzolacCold V2\IzolacCold V2\izolac_cold_dbv2.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True

当我调试它,然后转到调试文件夹,或者当我“释放”它时,就会出现问题。如果我运行exe文件程序正常工作,但它将数据保存在连接字符串中定义的数据库中,而不是在DEBUG文件夹(或RELESE文件夹)中创建的数据库中保存。

如何正确连接到我的数据库。如何构建正确的连接字符串?

1 个答案:

答案 0 :(得分:2)

您应该使用DataDirectory替换字符串。

例如,您可以将您的连接字符串写为

Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\izolac_cold_dbv2.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True

在您的代码中,您可以在尝试打开连接之前控制执行此代码的DataDirectory的确切位置。

Dim commonDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)
Dim myAppDataFolder = Path.Combine(commonDataFolder, "MyAppName")
if Not Directory.Exists(myAppDataFolder) Directory.CreateDirectory(myAppDataFolder)
AppDomain.CurrentDomain.SetData("DataDirectory", myAppDataFolder)

(此示例使用C:\ programdata \ myAppName文件夹,因为它是应用程序所需的读/写数据文件的最合适位置

您的部署过程应注意创建上述文件夹并将数据库文件放在此位置。