C# 更改app.config中的连接字符串值

C# 更改app.config中的连接字符串值,c#,C#,我正在尝试更改连接字符串值 connectionString=“数据源=本地主机;初始目录=跟踪器;持久安全信息=false;用户ID=sa;密码=p@ssw0rd" 从我的用户界面。在windows应用程序的用户界面上,是否有人可以帮助更改设置?从原始帖子的评论线程中,OP似乎需要枚举数据源,并允许用户选择一个数据源(可能还需要存储该首选项)。假设是这样的话 如果可能的话,应该使用集成的Windows安全性保护与数据库的实际连接。这是一个很好的例子。集成的安全性消除了在任何地方存储凭据的需要

我正在尝试更改连接字符串值

connectionString=“数据源=本地主机;初始目录=跟踪器;持久安全信息=false;用户ID=sa;密码=p@ssw0rd"


从我的用户界面。在windows应用程序的用户界面上,是否有人可以帮助更改设置?

从原始帖子的评论线程中,OP似乎需要枚举数据源,并允许用户选择一个数据源(可能还需要存储该首选项)。假设是这样的话

  • 如果可能的话,应该使用集成的Windows安全性保护与数据库的实际连接。这是一个很好的例子。集成的安全性消除了在任何地方存储凭据的需要

  • 如果目标是选择一个数据源,那么使用C#列出所有数据源并不困难

  • 用户的首选项/选择应存储在app.config以外的其他位置。如果不涉及凭据,则注册表、独立存储或XML文件都是有效选项

ASP.NET提供网站管理工具,用于查看和管理ASP.NET网站的配置设置。这些配置设置存储在名为web.config的xml文件中

web.config是一个应用程序配置文件,用于定义ASP.NET应用程序的配置设置,如连接字符串、身份验证、授权等

该工具提供了一个易于使用的界面来编辑配置设置。但是,当您必须手动进行更改时,此工具运行良好。有时,我们可能需要在运行时更改web.config。例如:用户请求控制连接字符串、更改会话超时等。 为此,ASP.NET提供了配置API,以编程方式操作web.config中的配置设置。API包含在System.Configuration和System.Web.Configuration命名空间中。事实上,网站管理工具在内部使用相同的API来编辑配置设置。 System.Web.Configuration命名空间中的WebConfiguration Manager类用于创建配置对象。此对象用于读取和写入对web.config文件的更改

另见


让我澄清一下,这不是您要问的问题,但通过阅读本文,您将能够找到一些线索,并了解哪些是推荐的,哪些不是。

如果这是Windows应用程序,则无需更改app.config文件来更改活动数据库连接。我已经写过了。

下面的用户使用C#更改连接字符串的方法:

添加下面的类DBinfo

public class DbInfo
{
    public DataBaseType dbType { get; set; }
    public SqlServerAuthenticationType sqlServerAuthType { get; set; }
    public string ConnectionString { get; set; }
    public string databaseAdress { get; set; }
    public string userId { get; set; }
    public string password { get; set; }
    public string Port { get; set; }
    public string DatabaseName { get; set; }
}

public enum DataBaseType
{
    Unknown = 0,
    Embedded = 1,
    Microsoft_SQL_Server =2,
}

public enum SqlServerAuthenticationType
{
    Windows_Authentication = 0 ,
    SQL_Server_Authentication =1
}

你想让应用程序更新自己的app.config文件吗?从应用程序本身重写应用程序的配置文件不是一个好主意。这不是一个好策略。如果需要创建动态连接字符串,可能不希望将其存储在app.config文件中。我建议对文件或注册表进行加密。我只想从窗口中更改app.config文件中的数据源。我想为数据源获取用户的输入。这不是一个好主意。尝试将连接首选项存储在数据库或其他文件中。我认为您需要输入,以便从一台服务器到另一台服务器进行某种类型的数据迁移,或与此相关的内容。不确定。。如果您想实现这一点,可以从代码本身打开连接。。使用
SQLConnection
public class DbInfo
{
    public DataBaseType dbType { get; set; }
    public SqlServerAuthenticationType sqlServerAuthType { get; set; }
    public string ConnectionString { get; set; }
    public string databaseAdress { get; set; }
    public string userId { get; set; }
    public string password { get; set; }
    public string Port { get; set; }
    public string DatabaseName { get; set; }
}

public enum DataBaseType
{
    Unknown = 0,
    Embedded = 1,
    Microsoft_SQL_Server =2,
}

public enum SqlServerAuthenticationType
{
    Windows_Authentication = 0 ,
    SQL_Server_Authentication =1
}