connectionString, мне нужно использовать пароль, но я использую соединение Windows - PullRequest
0 голосов
/ 26 января 2019

Я создал базу данных с Visual Studio, я использую Windows-аутентификацию для подключения к ней.

Я пробовал много вещей, но это не работает

namespace Stock
{
    public partial class Fm_principal : Form
    {
        public SqlConnection connexion_BDD()
        {
            //Connection base de donnée
            string connectionString = "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=Database;Trusted_Connection=false";

            SqlConnection connection = new SqlConnection(connectionString);
            try
            {
                connection.Open();
                return connection;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);

                return connection;
            }
        }
        public Fm_principal()
        {
            InitializeComponent();
        }
        private void cb_test_Click(object sender, EventArgs e)
        {
            connexion_BDD();
            string request = "SELECT ref_pdt FROM produits";
            SqlCommand command = new SqlCommand(request, connexion_BDD());
            SqlDataReader dataReader = command.ExecuteReader();
            while (dataReader.Read())
            {
                cb_test.Items.Add(dataReader["ref_pdt"]);
            }
        }
    }
}

У меня ошибка в dataReader, потому что в данный момент соединение закрыто

1 Ответ

0 голосов
/ 26 января 2019

Я буквально только что ударил это, но вы захотите что-то вроде этого: (Подсказка: посмотрите на что-то вроде Dapper, как вам может понравиться это лучше)

public partial class Fm_principal : Form
{
    public SqlConnection connexion_BDD()
    {
        //Connection base de donnée
        string connectionString = "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=Database;Trusted_Connection=true";

        SqlConnection connection = new SqlConnection(connectionString);
        try
        {
            connection.Open();
            return connection;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);

            return connection;
        }
    }
    public Fm_principal()
    {
        InitializeComponent();
    }
    private void cb_test_Click(object sender, EventArgs e)
    {
        using (var connection = connection_BDD())
        {
            string request = "SELECT ref_pdt FROM produits";
            using (var command = new SqlCommand(request, connection))
            {
                using (var dataReader = command.ExecuteReader())
                {
                    while (dataReader.Read())
                    {
                        cb_test.Items.Add(dataReader["ref_pdt"]);
                    }
                }
            }
        }
    }
}

Редактировать: На всякий случай, если я неправильно понимаю ваш вопрос, это означает, что вы действительно хотите подключиться, используя имя пользователя и пароль, а затем установите строку подключения следующим образом:

string connectionString = "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=Database;User Id=YOURUSERNAME;Password=YOURPASSWORD;Trusted_Connection=false";

Редактировать: Для настройки учетных данных SQL (я не очень рекомендую это, поскольку считаю, что интегрированная безопасность лучше, поскольку она позволяет избежать утечки учетных данных имени пользователя / пароля в систему контроля версий):

  1. Убедитесь, что аутентификация SQL Server включена (SSMS -> Сервер (Щелкните правой кнопкой мыши) -> Свойства -> Безопасность (Убедитесь, что второе радио выбрана кнопка «Режим аутентификации SQL Server и Windows»
  2. Вам потребуется логин сервера и сопоставленный пользователь БД. Под сервером (в SSMS) разверните Безопасность -> Логины. Добавить логин (клик правой кнопкой мыши выберите Добавить логин).
  3. Введите желаемое имя пользователя (это Идентификатор пользователя в строке подключения) и выберите SQL Server Аутентификация, затем выберите (надеюсь, хороший) пароль. Если это локальный ящик и вам все равно отключите политику паролей флажки.
  4. В диалоговом окне «Роли базы данных» оставить открытым или сделайте его более привилегированным, если вы хотите, чтобы он управлял БД. Если это Локальный devbox делает учетную запись sysadmin может быть в порядке.
  5. В диалоговом окне под сопоставлением пользователей выберите свою БД и выберите соответствующий роли. Если пользователю просто нужно получить доступ (чтение / запись) данных, выберите db_datareader / db_datawriter. Часто на коробке разработчика просто комплектации Лучше всего использовать db_owner (если вы управляете схемой и т. д.)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...