个性化数据库C#应用程序的连接字符串

时间:2016-12-23 16:10:54

标签: c# sql database connection-string

我正在尝试为我安装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;
     }
 }

有人可以指导我找到解决此问题的正确途径,并为数据库安装到的每台计算机生成个性化连接字符串吗?

1 个答案:

答案 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中的连接字符串(无论哪个与您相关)更改为新文件位置,而无需更改硬编码值并重建应用程序试。