Как использовать динамическую строку подключения в asp.net? - PullRequest
0 голосов
/ 31 мая 2019

Итак, я пишу программу, которая импортирует файлы Excel в базу данных, находит совпадения, несоответствия, показывает таблицы и т. Д.

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

Если ничего не вставлено, будет использоваться последний вставленный.

За кодом:

protected void BtnFazerTudo_Click(object sender, EventArgs e)
    {
        var connectionString = ConfigurationManager.ConnectionStrings["Db"].ConnectionString;
        connectionString = connectionString.Replace("{username}", TxtUtilizador.Text);
        connectionString = connectionString.Replace("{pwd}",TxtPalavraPasse.Text);
        connectionString = connectionString.Replace("{DataSource}", TxtHost.Text);
        connectionString = connectionString.Replace("{Initial}", TxtBaseDeDados.Text);

        Debug.Write(con);
    }

Web Config:

<add name="Db" connectionString="Data Source ={DataSource} ;Initial Catalog= 
{Initial};Persist Security  
Info=True;User ID={username};Password={pwd}"/>

Я уже пробовал String Builder. Мне удалось вывести его в окне отладки, но я понятия не имею, как перенести это соединение, созданное строителем строк, на другие веб-формы.

1 Ответ

0 голосов
/ 31 мая 2019

Строка подключения, которую вы создаете, должна быть сохранена где-нибудь, чтобы все страницы вашего веб-приложения могли получить к ней доступ. Хотя есть некоторые варианты, позволяющие передавать данные между страницами , ни один из них не подходит вам в основном потому, что (a) строка подключения содержит конфиденциальную информацию, такую ​​как пароль !!! и (b) они не обеспечивают уровень устойчивости, требуемый вашим сценарием (если только вы не хотите, чтобы пользователь заполнял текстовые поля каждый раз, когда он подключается к вашему приложению).

Сказав это, один жизнеспособный вариант - сохранить строку подключения в базе данных и извлекать ее каждый раз, когда вам это нужно. Вы можете сохранить его как целую строку или данные каждого пользователя отдельно (т. Е. Каталог, идентификатор пользователя, пароль и т. Д.). В последнем случае вам придется заново создавать строку подключения каждый раз, когда вам это нужно.

То, как вы создаете строку подключения, никак не связано с вашим первоначальным вопросом. Речь идет о конкатенации строк в C #, для которой вы можете использовать операторы + или +=, интерполяция строк или String.Format, String.Concat, String.Join или StringBuilder.Append.

...