c# - 是否可以(以及如何)在 C# 中的运行时将 ConnectionString 添加到 app.config?

标签 c# connection-string app-config

我有一个控制台应用程序,它获取连接字符串作为参数。我必须在 app.config 中设置一个名为“ConnectionString”的 ConnectionString,并将给定的参数设置为 sql 连接字符串。

感谢答案。在链接的帮助下,我得到了这个:

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); var connectionStringSettings = new ConnectionStringSettings("ConnectionString", _arguments["connectionString"], "System.Data.SqlClient"); config.ConnectionStrings.ConnectionStrings.Add(connectionStringSettings); config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("connectionStrings");

最佳答案

是的,您绝对可以在运行时在 app.config 中添加/修改/删除设置。这就是我通常的做法。

using System.Configuration; // don't forget to add the system.configuration dll to your references.

    public static void CreateConnectionString(string datasource, string initialCatalog, string userId, string password)
    {
        try
        {
            //Integrated security will be off if either UserID or Password is supplied
            var integratedSecurity = string.IsNullOrEmpty(userId) || string.IsNullOrEmpty(password);

            //Create the connection string using the connection builder
            var connectionBuilder = new SqlConnectionStringBuilder
            {
                DataSource = datasource,
                InitialCatalog = initialCatalog,
                UserID = userId,
                Password = password,
                IntegratedSecurity = integratedSecurity
            };

            //Open the app.config for modification
            var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            //Retreive connection string setting
            var connectionString = config.ConnectionStrings.ConnectionStrings["ConnectionStringName"];
            if (connectionString == null)
            {
                //Create connection string if it doesn't exist
                config.ConnectionStrings.ConnectionStrings.Add(new ConnectionStringSettings
                {
                    Name = ConnectionName,
                    ConnectionString = connectionBuilder.ConnectionString,
                    ProviderName = "System.Data.SqlClient" //Depends on the provider, this is for SQL Server
                });
            }
            else
            {
                //Only modify the connection string if it does exist
                connectionString.ConnectionString = connectionBuilder.ConnectionString;
            }

            //Save changes in the app.config
            config.Save(ConfigurationSaveMode.Modified);
        }
        catch (Exception)
        {
            //TODO: Handle exception
        }
}

希望这对您有所帮助。

关于c# - 是否可以(以及如何)在 C# 中的运行时将 ConnectionString 添加到 app.config?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1833151/

相关文章:

c# - 如何在运行时保存自定义配置部分?

c# - Visual Studio 中开发人员特定的 app.config/web.config 文件

c# - 无法转换类型为“WhereSelectEnumerableIterator”的对象

c# - 如何在 wpf 对话框中选择默认按钮?

java - JDBC - 无法使用服务名称连接到 Oracle

.net - 如何使用 .NET 与多个用户一起访问 Oracle 中自己的数据库?

unit-testing - NUnit GUI 未找到 app.config 文件

c# - ElasticSearch NEST - 按特定范围内的日期列表排序

c# - XAML 检测 ListView 项目是否获得焦点

c# - 管理调试和发布连接字符串