Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
0 / 0 / 0
Регистрация: 20.01.2021
Сообщений: 16

Поиск данных с использованием comboBox в базе данных

17.11.2022, 13:34. Показов 669. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь реализовать поиск по таблице. Хочу, чтобы вывелись мне студенты именно выбранной группы. Группы выпадают в comboBox. А вывод на dataGrid. Похоже ошибка в запросе. (Таблица Students, группы написаны в squadof). Проблема: Не выводит.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 private void ShowSelectedStudents()
        {
            DB db = new DB();
 
 
            db.openConnection();
 
            MySqlCommand cmdShowSelectedStudents = new MySqlCommand("SELECT * FROM " +
                "students WHERE squadof LIKE @squads", db.getConnection());
 
            cmdShowSelectedStudents.Parameters.AddWithValue("@squads", Convert.ToString(squadSelectСomboBox));
 
            MySqlDataReader sdr = cmdShowSelectedStudents.ExecuteReader();
            DataTable dtRecords = new DataTable();
            dtRecords.Load(sdr);
            dataGridView1.DataSource = dtRecords;
 
            db.closeConnection();
        }
 
        private void goNextCriticaButton_Click(object sender, EventArgs e)
        {
            ShowSelectedStudents();
        }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.11.2022, 13:34
Ответы с готовыми решениями:

Поиск по базе данных с использованием Java
Есть БД с одной таблицей, и созданы сервлеты для вывода данных, изменения, удаления добавления. Но нужно еще добавить функцию поиска...

Поиск слов в базе данных с использованием специальных символов
Уважаемые программисты, добрый день! Помогите пожалуйста решить задачу по поиску слов в базе данных MySQLс использованием специальных...

Динамический поиск по базе данных, с использованием ADOQuery и DBGrid
Есть на форме DBGrid и Edit, так вот, когда мы вводим в Edit символы, тут же начинается поиск и в DBGrid-е отображаются результаты. Т. е....

20
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
17.11.2022, 13:44
PhoenixLuminous, Оберните код доступа к БД в try .. catch и покажите ошибку
C#
1
2
3
4
5
6
7
8
9
10
try
{
 
    // Код доступа к БД
 
}
catch (Exception ex)
{
    MessageBox(ex.ToString());
}
0
0 / 0 / 0
Регистрация: 20.01.2021
Сообщений: 16
17.11.2022, 13:48  [ТС]
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
и покажите ошибку
Ошибки нет, при нажатии попросту нет эффекта.
0
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
17.11.2022, 13:49
Цитата Сообщение от PhoenixLuminous Посмотреть сообщение
WHERE squadof LIKE @squads
Если ищется полностью по имени группы, то перепишите вот так
SQL
1
WHERE squadof = @squads
LIKE это часть текста.
0
0 / 0 / 0
Регистрация: 20.01.2021
Сообщений: 16
17.11.2022, 13:52  [ТС]
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
WHERE squadof = @squads
Тоже не выводит, датаГрид пустой, ошибок нет. Хм..
0
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
17.11.2022, 13:54
PhoenixLuminous, В СУБД запрос проверяли? Там всё работает с этими данными? И посмотрите что у вас в параметре и в коллекции ридера, поставьте точку останова на dataGridView1.DataSource = dtRecords;.
0
0 / 0 / 0
Регистрация: 20.01.2021
Сообщений: 16
17.11.2022, 13:59  [ТС]
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
точку останова
С точкой в дебаге показывает, что из таблицы ничего не взято, она пустая. Показывает все столбцы пустые.
0
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
17.11.2022, 14:02
PhoenixLuminous, А что в параметре?
0
0 / 0 / 0
Регистрация: 20.01.2021
Сообщений: 16
17.11.2022, 14:05  [ТС]
Цитата Сообщение от PhoenixLuminous Посмотреть сообщение
таблицы
Таблица:
Миниатюры
Поиск данных с использованием comboBox в базе данных  
0
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
17.11.2022, 14:06
PhoenixLuminous, В параметре что показывает при дебаге?
И для LIKE можно вот так попробовать записать параметр
C#
1
command.Parameters.AddWithValue("@MyName", "%" + MyName.Text + "%")
0
0 / 0 / 0
Регистрация: 20.01.2021
Сообщений: 16
17.11.2022, 14:10  [ТС]
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
А что в параметре?
Похоже это:
Миниатюры
Поиск данных с использованием comboBox в базе данных  
0
0 / 0 / 0
Регистрация: 20.01.2021
Сообщений: 16
17.11.2022, 14:12  [ТС]
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
попробовать
Надо попробовать.
0
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
17.11.2022, 14:12
Цитата Сообщение от PhoenixLuminous Посмотреть сообщение
Похоже это
А надо чтоб был номер группы, вот и все дела...
0
0 / 0 / 0
Регистрация: 20.01.2021
Сообщений: 16
17.11.2022, 14:21  [ТС]
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
command.Parameters.AddWithValue("@MyName ", "%" + MyName.Text + "%")
А вот и ошибка подъехала:
Миниатюры
Поиск данных с использованием comboBox в базе данных  
0
0 / 0 / 0
Регистрация: 20.01.2021
Сообщений: 16
17.11.2022, 14:27  [ТС]
Цитата Сообщение от PhoenixLuminous Посмотреть сообщение
ошибка
Я таких огромных ещё не видел.

Добавлено через 4 минуты
Цитата Сообщение от PhoenixLuminous Посмотреть сообщение
ошибка
Я там неправильно написал немного. Может из за этого, проверю.

Добавлено через 2 минуты
Цитата Сообщение от PhoenixLuminous Посмотреть сообщение
неправильно
Ну да, это из за опечатки. Теперь снова ничего не выводит. Хм..
0
0 / 0 / 0
Регистрация: 20.01.2021
Сообщений: 16
17.11.2022, 14:35  [ТС]
Цитата Сообщение от PhoenixLuminous Посмотреть сообщение
MyName.Text
Ну вот тут вижу, что группу выбирает.
Миниатюры
Поиск данных с использованием comboBox в базе данных  
0
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
17.11.2022, 14:39
Лучший ответ Сообщение было отмечено PhoenixLuminous как решение

Решение

PhoenixLuminous, Уберите LIKE из запроса, поставьте = и в объявлении параметра уберите знаки '%', оставьте только значение.
1
0 / 0 / 0
Регистрация: 20.01.2021
Сообщений: 16
17.11.2022, 14:46  [ТС]
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
оставьте только значение
Ура. Эффект имеется. Спасибо, что повозились со мной. Финальный код такой: (Может кому тоже надо):

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 private void ShowSelectedStudents()
        {
            try
            {
                DB db = new DB();
 
 
                db.openConnection();
 
                MySqlCommand cmdShowSelectedStudents = new MySqlCommand("SELECT * FROM " +
                    "students WHERE squadof = @squads", db.getConnection());
 
                cmdShowSelectedStudents.Parameters.AddWithValue("@squads", squadSelectСomboBox.Text);
 
                MySqlDataReader sdr = cmdShowSelectedStudents.ExecuteReader();
                DataTable dtRecords = new DataTable();
                dtRecords.Load(sdr);
                dataGridView1.DataSource = dtRecords;
 
                db.closeConnection();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
 
        }
 
        private void goNextCriticaButton_Click(object sender, EventArgs e)
        {
            ShowSelectedStudents();
        }
Добавлено через 1 минуту
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
параметра
То есть похоже проблема была в том что я конвертировал в в стринг.. возможно.
0
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
17.11.2022, 14:49
Цитата Сообщение от PhoenixLuminous Посмотреть сообщение
Convert.ToString(squadSelectСomboBox)
Цитата Сообщение от PhoenixLuminous Посмотреть сообщение
squadSelectСomboBox.Text
Разницу видите?
0
0 / 0 / 0
Регистрация: 20.01.2021
Сообщений: 16
17.11.2022, 14:54  [ТС]
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Разницу видите?
Да, вижу. Мы просто обращаемся к текст бокс > к его тексту. А я зачем-то конверитить. Может я побоялся за цифры в запросе. Не знаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.11.2022, 14:54
Помогаю со студенческими работами здесь

Как сделать поиск даты в базе данных с использованием dateTimePicker?
Здравствуйте. кто может подсказать как сделать поиск по дате в БД с использование dateTimePicker. То есть чтобы пользователь не вручную...

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

Создание базы данных “Сессия” и запросов к этой базе данных на языке Пролог с использованием стандартного предиката fail
Здравствуйте, уважаемые форумчане. Прошу помочь с написанием следующих правил: 1) Выдать на экран фамилии всех студентов, которые сдают...

Как осуществить поиск данных по базе данных по связи многие-ко-многим
Репозиторий SqlApplicantRepository namespace theModel.Repository { public class SqlApplicantRepository:IApplicantRepository ...

Реализовать поиск и выбор данных в форме в базе данных Access
Здравствуйте! Подскажите пожалуйста,как реализовать поиск и выбор данных в форме в базе данных Access. Заданы таблицы товар,тип товара,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru