Как ввести пароль во время выполнения для набора данных? - PullRequest
1 голос
/ 28 февраля 2011

У меня есть база данных с паролем. Если я позволю сохранить пароль с помощью строки подключения, он будет виден в файле .config.

Как я могу установить то же самое во время выполнения?

Проверено:

Указать ADO.Net DataSet для разных баз данных во время выполнения?

Изменение строки подключения набора данных во время выполнения

Но нужен какой-то способ изменить строку подключения в самой настройке, чтобы избежать изменений во многих местах.

Обновление: это приложение Windows Forms.

Ответы [ 3 ]

2 голосов
/ 28 февраля 2011

Это может быть достигнуто путем переопределения следующего свойства. Шаги.

  1. Перейти к настройкам

  2. Нажмите на код для просмотра

  3. В поле зрения кода добавьте следующий код

Vb, нетто

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 # (грубый код, преобразованный с помощью конвертера кодов)

public override object this[string propertyName] {
    get {
        if (propertyName == "MyConnectionString") {
            return base.Item(propertyName) + ";Password=Yourpassword;";
        }
        return base.Item(propertyName);
    }
    set { base.Item(propertyName) = value; }
}
1 голос
/ 16 августа 2012

Используя DataSet, я использую следующий код:

myDataSet myData = new myDataSet();

myDataSetTableAdapters.myTableAdapter myInfo =
    new myDataSetTableAdapters.myTableAdapter();

myInfo.Connection.ConnectionString += ";Password=myPassword";
myInfo.Fill(myData.Info);

Вы можете установить любую часть таблицы Adapters ConnectionString.

0 голосов
/ 30 марта 2017

Функциональный код 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; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...