как передать текстовые детали текстового поля в строку подключения к базе данных c # - PullRequest
0 голосов
/ 04 мая 2019

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

пример:

string conString = "User Id=hr;Password=hr;Data Source=localhost:1523/orcl.162.0.7;";

вместо User Id hr => textuser_id.Text значения вместо password hr => textpass.Text значение

Ответы [ 2 ]

2 голосов
/ 04 мая 2019

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

  1. Вытащите их из хранилища ключей, такого как лазурное хранилище ключей или хранилище HashiCorp
  2. Извлечь их из системных переменных среды Переменные среды , если они будут работать на сервере
  3. Тогда, как рекомендовали господа, рекомендованные выше, вы можете использовать SqlConnectionStringBuilder, чтобы соединить пользователя и пароль в строку

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

        public string CreateConnectionString(string user, string password)
        {
            string optionOne = "User Id="+user+";Password="+password+";Data Source=localhost:1523/orcl.162.0.7;";

            // String interpolation
            string optionTwo = $"User Id={user};Password={password};Data Source=localhost:1523/orcl.162.0.7;";
                // Many more ways 
            return optionTwo;
        }
0 голосов
/ 04 мая 2019

Вы можете использовать строку. Формат:

string constring = string.Format("User Id={0};Password={1};Data Source=localhost:1523/orcl.162.0.7;", textuser_id.Text, textpass.Text);

Вы также можете использовать $ перед строкой:

string constring = $"User Id={textuser_id.Text};Password={textpass.Text};Data Source=localhost:1523/orcl.162.0.7;";

Разница:

  • string.Format: использовать числа внутри {}, которые указывают расположение значения после строки.

  • $: использовать значения внутри {}.

Для меня проще использовать $, но вы можете использовать оба.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...