Не выводит информацию из БД в ComboBox C#(WPF)

Я пытаюсь получить данные из столбца навзаниеОтделов из таблицы Отделы в БД через C# используя библиотеку WPF и заполнить этими названиями ComboBox, но по итогу у меня ComboBox пустой:

код:

private void FillComboBox()
{
    try
    {
        // Запрос для выборки 
        string sqlCommand = "SELECT названиеОтдела FROM Отделы";

        // Создание команды для выполнения запроса
        SqlCommand command = new SqlCommand(sqlCommand, sqlCnct);

        // Выполнение запроса и получение результата
        SqlDataReader reader = command.ExecuteReader();

        // Очистка ComboBox перед добавлением новых значений
        Deportaments.Items.Clear();

        // Добавление значений в ComboBox
        while (reader.Read())
        {
            Deportaments.Items.Add(reader["названиеОтдела"].ToString());
        }

        // Закрытие ридера
        reader.Close();
    }
    catch (Exception ex)
    {
        // Обработка исключений, если не удалось выполнить запрос
        MessageBox.Show("Ошибка при заполнении ComboBox: " + ex.Message);
    }
}

// Вызов FillComboBox() в методе Window_Loaded
private void Window_Loaded(object sender, RoutedEventArgs e)
{
    FillComboBox();
}

Что не так ?

ДОБАВЛЕНО:

 private void FillComboBox()
 {
     try
     {
         // Проверка, что соединение с базой данных открыто
         if (sqlCnct.State != ConnectionState.Open)
         {
             sqlCnct.Open();
         }
           

         // Запрос для выборки названий отделов
         string sqlCommand = "SELECT названиеОтдела FROM Отделы";

         // Создание команды для выполнения запроса
         SqlCommand command = new SqlCommand(sqlCommand, sqlCnct);

         // Выполнение запроса и получение результата
         SqlDataReader reader = command.ExecuteReader();

         // Очистка ComboBox перед добавлением новых значений
         Deportaments.Items.Clear();

         // Добавление значений в ComboBox
         /* while (reader.Read())4eeeee
          {
              Deportaments.Items.Add(reader["названиеОтдела"].ToString());
          }*/

         Deportaments.Items.Add("Один");
         Deportaments.Items.Add("Два");
         Deportaments.Items.Add("Три");



         // Закрытие ридера
         //      reader.Close(); 
     }
     catch (Exception ex)
     {
         // Обработка исключений, если не удалось выполнить запрос
         MessageBox.Show("Ошибка при заполнении ComboBox: " + ex.Message);
     }
     finally
     {
         // Убедимся, что соединение с базой данных закрыто после использования
         if (sqlCnct.State == ConnectionState.Open)
         {
             sqlCnct.Close();
         }
     }
 }

 // Вызов FillComboBox() в методе Window_Loaded
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
     FillComboBox();
 }

Ответы (1 шт):

Автор решения: AlexanderSt

Я не вижу строки

SqlConnection sqlCnct = new SqlConnection(<connection_string>);
sqlCnct.Open();

если соединение с БД не открыто - в этом случае command.ExecuteReader() не вернет ничего.

Поставьте breakpoint на строку reader.Close(); и посмотрите в отладчике - попало ли что-нибудь в коллекцию Deportaments.Items, ну или пошагово цикл while().

→ Ссылка