C# 在数据库中存储连接字符串,并在应用程序启动时检索它

C# 在数据库中存储连接字符串,并在应用程序启动时检索它,c#,mysql,sql,sql-server,C#,Mysql,Sql,Sql Server,我正在VS2010中开发一个winforms应用程序,以将数据从Sql Server或MySql检索到Sql Server或MySql 我的设计是这样的 所以在这里,我将连接字符串的所有值存储在Sql Server数据库表中的单独列中 我能够获取所需的字段并对其进行验证、测试并将其存储在数据库中,但我一直在思考如何在运行时使存储的连接字符串正常工作,以及如何使用最后选择的连接字符串 请提供指导。您的配置文件可能有如下连接字符串部分: <connectionStrings>

我正在VS2010中开发一个winforms应用程序,以将数据从Sql Server或MySql检索到Sql Server或MySql

我的设计是这样的

所以在这里,我将连接字符串的所有值存储在Sql Server数据库表中的单独列中

我能够获取所需的字段并对其进行验证、测试并将其存储在数据库中,但我一直在思考如何在运行时使存储的连接字符串正常工作,以及如何使用最后选择的连接字符串


请提供指导。

您的配置文件可能有如下连接字符串部分:

<connectionStrings>
    <add name="ConnectionNumberOne"
        connectionString="Data Source=ds;Initial Catalog=DB;Integrated Security=True"
        providerName="System.Data.SqlClient" />
    <add name="ConnectionNumberTwo"
        connectionString="Data Source=ds2;Initial Catalog=DB2;Integrated Security=True"
        providerName="System.Data.SqlClient" />
</connectionStrings>
您还可以保存连接字符串:

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.ConnectionStrings.ConnectionStrings["ConnectionNumberOne"].ConnectionString = //CONCATINATE YOUR FIELDS TOGETHER HERE
config.Save(ConfigurationSaveMode.Modified, true);
ConfigurationManager.RefreshSection("connectionStrings");

询问代码的问题必须证明对正在解决的问题的最低理解。包括尝试的解决方案、它们不起作用的原因以及预期的结果。您是否连接到许多不同的数据库?有中央的吗?通过保存到,可以很容易地管理连接字符串,然后您不需要连接字符串来查找连接字符串。@MikeW我有代码来获取连接字符串,验证它并存储它,所以这里没有使用该代码,我想这就是为什么我没有在这里提供该代码的原因。我无法设计如何在应用程序启动时使用上次保存的设置。谢谢,只是因为它保存在配置文件中,并不意味着它是硬编码的。您可以像读取配置文件一样轻松地写入配置文件。也许这个类会更吸引您。
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.ConnectionStrings.ConnectionStrings["ConnectionNumberOne"].ConnectionString = //CONCATINATE YOUR FIELDS TOGETHER HERE
config.Save(ConfigurationSaveMode.Modified, true);
ConfigurationManager.RefreshSection("connectionStrings");