Combobox c заполнение из базы данных

Кроме прямого добавления элементов в коллекцию Items компонентов ListBox и ComboBox мы также можем использовать механизм привязки данных.

Привязка данных в ListBox и ComboBox реализуется с помощью следующих свойств:

DataSource : источник данных – какой-нибудь массив или коллекция объектов

DisplayMember : свойство объекта, которое будет использоваться для отображения в ListBox / ComboBox

ValueMember : свойство объекта, которое будет использоваться в качестве его значения

Итак, на форме у нас есть список ListBox с именем listBox1. В коде имеется класс Phone с тремя свойствами, объекты которого мы хотим выводить в список. В отличие от предыдущих тем эта задача сложнее, так как раньше мы выводили обычные строки, тут же у нас сложные объекты.

Для вывода используем механизм привязки. Сначала устанавливаем список телефонов в качестве источника данных:

Затем устанавливаем в качестве отображаемого свойства свойство Name класса Phone, а в качестве свойства значения – свойство Id:

Значение отображаемого свойства мы затем увидим в списке. Оно будет представлять каждый отдельный объект Phone.

С помощью же свойства значения, которым является свойство Id, мы можем упростить работу с источником данных. В данном случае оно не играет большой роли. Но если бы мы использовали в качестве источника данных некоторый набор объектов из базы данных, то с помощью id нам было проще удалять, обновлять и взаимодействовать с базой данных.

И теперь если мы выделим какой-то объект, то свойство SelectedItem элементы ListBox будет содержать объект Phone, у которого мы можем получить значения свойств:

А выделенное значение, то есть значение свойства >SelectedValue .

И если мы запустим приложение, то увидим все отображаемые телефоны:

Все то же самое характерно и для элемента ComboBox. Пусть кроме ListBoxa на форме есть ComboBox:

Читайте также:  Программа для обработки pdf файлов на русском

Здесь также для комбобокса устанавливается привязка, а также отображаемое свойство и свойство значения. Кроме того, здесь обрабатывается событие выбора элемента в комбобоксе так, чтобы выбранный элемент попадал в ListBox.

В отличие от ListBoxa ComboBox имеет три свойства для обработки выделенного объекта:

SelectedItem : выбранный элемент

SelectedValue : значение свойства значения, в данном случае свойство Id

SelectedText : значение свойства отображение, в данном случае свойство Name класса Phone

Я хочу добавить все Id из таблицы клиентов в combobox, используя класс, и это мой класс соединения connectionClass, в котором я создал функцию для выбора данных из базы данных. Вторая – это моя клиентская форма (это код клиента, кодирующий customerForm) в который я называю функцией, которую я создал в классе соединений. Но это только показывает последний идентификатор в форме клиента, и я хочу, чтобы все id в combobox

4 ответа

В методе select () вы возвращаете строку, вместо которой вам нужно заполнить базу данных и связать данные со списком.

Вместо string верните List of strings следующим образом:

эта функция возвращает только идентификатор из таблицы Customer. Я хочу использовать несколько данных из таблицы Customer, используя тот же метод. Можете ли вы мне помочь в этом?

Как правило, этот сайт работает не так. Во-первых, вы должны задать конкретный вопрос и показать, что вы сделали. Тогда мы можем вам помочь.

Здесь я попытаюсь дать вам два общих решения для работы с базой данных.

Предположим, вы хотите отобразить все, извлеченные из базы данных, в вашу форму Windows.

Сначала создайте объект DataGridView , назовем его dataGridView1 , Вы можете создать его, используя конструктор, как любой другой элемент управления. затем используйте следующие коды:

Читайте также:  Удаление вкладок в яндексе

Скажем, из таблицы базы данных вы хотите извлечь 3 столбца: ID (INT) , Name (VARCHAR(100)) и Value (VARCHAR(MAX) .

Сначала создайте класс:

Создайте функцию, которая возвращает список клиентов:

Затем вы можете использовать эти данные так, как хотите. Например, чтобы заполнить ваши ComboBox идентификаторами, вы можете использовать это:

@L_JThis является моей формой клиента

Это мой класс подключения, в котором я делаю функцию selectdata из базы данных

Но это и из кода проверить легко.

Как бы ComboBox выводит ToString.Если делать не по helloworldному, то было бы уместным вычитывать информацию из базы в коллекцию экземпляров своего класса для ФИО, и скармливать эту коллекцию комбобоксу. Правда, большинство не заморачивается такими вещами.

В качестве источника берется DataTable и из ее полей выбирается DisplayMember и ValueMember.

Разумеется, источником может быть и класс с полями displayMember и valueMember

это и твоему ежу на аватаре понятно, если DisplayMember == null

Задачка то у автора простейшая, и ему нужно оптимальное решение, а не демонстрация наших знаний о рефлекторах.

Хотелось бы подробнее узнать об этом. И почему мой подход не удачный?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock detector