我正在尝试为我安装C#应用程序的计算机提供个性化的数据库连接字符串。我使用Visual Studio创建了一个数据库,但只将数据库的位置指向我的个人目录,这不是一般的。 现在,当我尝试发布应用程序并尝试在其他计算机上安装它时,数据库给我一个错误,它没有找到,这是有道理的,因为连接字符串指向我的个人计算机目录。
以下是我的代码的一部分:
private void button13_Click_1(object sender, EventArgs e)
{
try
{
SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Program Files\\Hydrolec Inc\\PanelProgressLogger\\PanelProgress.mdf;Integrated Security=True;User Instance=True;");
sda = new SqlDataAdapter(@"SELECT [Panel Progress].*
FROM [Panel Progress]", con);
fill_grid();
}
catch (Exception error)
{
label6.Text = error.Message;
}
}
有人可以指导我找到解决此问题的正确途径,并为数据库安装到的每台计算机生成个性化连接字符串吗?
答案 0 :(得分:-1)
在app.config或web.config文件中(无论哪个与您相关)在配置标记下添加以下连接字符串。
<connectionStrings>
<add name="DbConnection" connectionString="Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Program Files\\Hydrolec Inc\\PanelProgressLogger\\PanelProgress.mdf;Integrated Security=True;User Instance=True;" />
</connectionStrings>
如果您已有连接字符串部分,则只添加
<add name="DbConnection" connectionString="Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Program Files\\Hydrolec Inc\\PanelProgressLogger\\PanelProgress.mdf;Integrated Security=True;User Instance=True;" />
然后在您的C#代码中,而不是硬编码连接字符串,您可以使用配置值。
string connectionString = ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString;
private void button13_Click_1(object sender, EventArgs e)
{
try
{
SqlConnection con = new SqlConnection(connectionString);
sda = new SqlDataAdapter(@"SELECT [Panel Progress].*
FROM [Panel Progress]", con);
fill_grid();
}
catch (Exception error)
{
label6.Text = error.Message;
}
}
构建它。然后,当您将应用程序部署到另一台计算机时,您只需将app.config或web.config中的连接字符串(无论哪个与您相关)更改为新文件位置,而无需更改硬编码值并重建应用程序试。