Passwords 如何在运行时向数据集提供密码?

Passwords 如何在运行时向数据集提供密码?,passwords,dataset,connection-string,Passwords,Dataset,Connection String,我有一个带有密码的数据库。 如果我允许使用connectionstring保存密码,它将在.config文件中可见 如何在运行时设置相同的值 检查: 但是需要一些方法来更改设置本身中的connectionstring,以避免在许多位置进行更改 更新:这是windows窗体应用程序。这可以通过覆盖以下属性来实现。 步骤 转到“设置” 点击查看代码 在视图代码中添加以下代码 Vb,Net Default Public Overrides Property Item(ByVal propertyN

我有一个带有密码的数据库。 如果我允许使用connectionstring保存密码,它将在.config文件中可见

如何在运行时设置相同的值

检查:

但是需要一些方法来更改设置本身中的connectionstring,以避免在许多位置进行更改


更新:这是windows窗体应用程序。

这可以通过覆盖以下属性来实现。 步骤

  • 转到“设置”

  • 点击查看代码

  • 在视图代码中添加以下代码

  • Vb,Net

    Default Public Overrides Property Item(ByVal propertyName As String) As Object
        Get
            If propertyName = "MyConnectionString" Then
                Return MyBase.Item(propertyName) & ";Password=Yourpassword;"
            End If
            Return MyBase.Item(propertyName)
        End Get
        Set(ByVal value As Object)
            MyBase.Item(propertyName) = value
        End Set
    End Property
    
    C#(使用代码转换器转换的粗略代码)


    通过使用
    数据集
    ,我使用了以下代码:

    myDataSet myData = new myDataSet();
    
    myDataSetTableAdapters.myTableAdapter myInfo =
        new myDataSetTableAdapters.myTableAdapter();
    
    myInfo.Connection.ConnectionString += ";Password=myPassword";
    myInfo.Fill(myData.Info);
    
    您可以自由设置tableAdapters连接字符串的任何部分。

    刚刚测试过的功能C#代码(基于@Sachin Chavan的精彩答案)。必须将覆盖放置在Settings.cs文件中:

    public override object this[string propertyName]
    {
        get
        {
            if (propertyName == "nameOfYourConnectionStringProperty")
            {
                return base[propertyName].ToString().Replace("******", "Y0uRpA$sW0rD");
            }
            return base[propertyName];
        }
        set { base[propertyName] = value; }
    }
    
    public override object this[string propertyName]
    {
        get
        {
            if (propertyName == "nameOfYourConnectionStringProperty")
            {
                return base[propertyName].ToString().Replace("******", "Y0uRpA$sW0rD");
            }
            return base[propertyName];
        }
        set { base[propertyName] = value; }
    }