gpt4 book ai didi

C# 修改库中存在的连接字符串

转载 作者:太空宇宙 更新时间:2023-11-03 22:22:26 28 4
gpt4 key购买 nike

我有一个类库,里面只有一个数据集(MySQL 连接器)和一个连接器类。

我在多个项目中使用这个类来连接数据库,我总是在连接字符串中嵌入密码,但现在我需要能够修改这个字符串(出于安全目的),这样我就可以让用户连接使用他们自己的帐户。

如何修改此连接字符串。

我试过以下方法

Properties.Settings.Default.DataBaseConnectionString = "String";

但似乎连接字符串是只读的,因为它似乎没有设置值。

我也尝试了以下但没有成功

Properties.Settings.Default.DatabaseConnectionString.Insert(
Properties.Settings.Default.DatabaseConnectionConnectionString.Length - 1,
"Password=dbpassword;");

最佳答案

你可以这样修改它们:

Properties.Settings.Default["MyConnectionString"] = newCnnStr;

对于还将新值保存到文件的完整解决方案,您需要执行如下操作:

    private static void ModifyConnectionStrings()
{
// Change the value in the config file first
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
const string newCnnStr = "server=(local);database=MyDb;user id=user;password=secret";
config.ConnectionStrings.ConnectionStrings["MyProject.Properties.Settings.MyConnectionString"].ConnectionString = newCnnStr;
config.Save(ConfigurationSaveMode.Modified, true);

// Now edit the in-memory values to match
Properties.Settings.Default["MyConnectionString"] = newCnnStr;
}

如果您的数据集在另一个程序集中,您仍然可以执行此操作,前提是您将该程序集的设置公开。为此:

  1. 在解决方案资源管理器中右键单击项目,然后单击属性
  2. 点击设置标签。
  3. Access Modifier 下拉菜单更改为“Public”,保存并关闭。

然后你可以这样做(假设另一个项目被称为“MyProject.DataLayer”):

    private static void ModifyConnectionStrings()
{
// Change the value in the config file first
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
const string newCnnStr = "server=(local);database=MyDb;user id=user;password=secret";
config.ConnectionStrings.ConnectionStrings["MyProject.Properties.Settings.MyConnectionString"].ConnectionString = newCnnStr;
config.ConnectionStrings.ConnectionStrings["MyProject.DataLayer.Properties.Settings.MyConnectionString"].ConnectionString = newCnnStr;
config.Save(ConfigurationSaveMode.Modified, true);

// Now edit the in-memory values to match
Properties.Settings.Default["MyConnectionString"] = newCnnStr;
MyProject.DataLayer.Properties.Settings.Default["MyConnectionString"] = newCnnStr;
}

关于C# 修改库中存在的连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2592905/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com