Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
1 / 1 / 3
Регистрация: 22.06.2013
Сообщений: 168

Создание универсального метода выборки из БД и прикрепления в качестве источника данных к комбобоксу

06.04.2018, 01:04. Показов 954. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста! Я в DataSet ResultData гружу данные из БД. А затем выбираю их в массив, который потом прикручиваю к комбобоксу в качестве источника данных. Массив содержит экземпляры класса ClData. В данном случае, я знаю какие столбцы я выдираю из БД. Вопрос. Как мне лучше сделать этот класс ClData и прикручивать к комбобоксу массив, Если например, я не знаю какие столбцы находятся в БД, но знаю их количество? То есть как создать некий универсальный класс или метод, который берет данные из БД, делает из них массив и прикрепляет его к комбобоксу?
C#
1
2
3
4
5
6
7
8
9
10
List<ClData> ggg=new List<ClData>(){};
            if(resultSelect!=null)
               {
            for (int i = 0; i < resultSelect.ResultData.Rows.Count; i++) {
                ggg.Add(new ClData(resultSelect.ResultData.Rows[i].ItemArray[0].ToString(),resultSelect.ResultData.Rows[i].ItemArray[1].ToString(),resultSelect.ResultData.Rows[i].ItemArray[4].ToString()));
            }
            
    _cmb_faculty_kaf.DisplayMember="faculty";
            _cmb_faculty_kaf.ValueMember="code_record";
            _cmb_faculty_kaf.DataSource=ggg;
Сам класс
C#
1
2
3
4
5
6
7
8
9
10
11
12
public  class ClData
    {
        public ClData(string Faculty,string Name_shem,string Code_record)
        {
            name_shem=Name_shem;
            code_record=Code_record;
                faculty=Faculty;
        }
        public  string name_shem{ get; set; }
        public string faculty{ get; set; }
        public string code_record{ get; set; }
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.04.2018, 01:04
Ответы с готовыми решениями:

Назначение источника строк Комбобоксу
Здравствуйте, уважаемые форумчане! Столкнулся с неразрешимой для меня проблемой: Необходимо назначить источник строк Комбобоксу через...

создание универсального метода класса вывода в цикле while
Коллеги программисты, опять нужна мне ваша подсказка. Поможете ? Проблема в том что я не знаю как загнать в одну переменную имена...

Не отображает Oracle в качестве источника данных
Пока напишу в общий раздел,так как не знаю куда отнести эту необычную проблему Есть таблицы созданные в Oracle SQL Developer и я хочу...

3
Эксперт .NET
 Аватар для Usaga
14100 / 9317 / 1349
Регистрация: 21.01.2016
Сообщений: 34,991
06.04.2018, 03:19
Tolyanych, а в чём проблема сразу прикреплять к контролу сам DataTable? Нафига промежуточные массивы, если всёравно всё должно быть «универсально», как оно вам на руки уже и поступает?
0
1 / 1 / 3
Регистрация: 22.06.2013
Сообщений: 168
06.04.2018, 06:14  [ТС]
Просто получается какая фигня. Я значит присобачил массив к комбобоксу. Потом, когда юзер выбирает в этом поле какое-то значение я делаю следующее:
C#
1
2
3
4
5
6
7
8
            if(_cmb_facultySection.SelectedValue==null)
            {
                _cmb_unitSection.DropDownStyle= ComboBoxStyle.Simple;
            }
            else{
                _cmb_unitSection.DropDownStyle= ComboBoxStyle.DropDown;
            ClData fff=(ClData)_cmb_facultySection.SelectedItem;
        }
То есть получается так:
1) В первом комбо есть значения 1,2,3
2) при выборе в нем значения 1 в комбо2 грузятся значения из первой таблицы БД: 11,12,13; при выборе в комбо значения 2 в комбо2 грузятся значения из второй таблицы БД: 56,77,88
3) И так далее. И у меня несколько таких комбо, значения в которых зависят от выбора в предыдущих.

Поэтому я в 1 комбо получаю экземпляр того, что отображается на экране, и в зависимости от значения параметров в этом экземпляре понимаю из какой таблицы БД грузить данные в следующий комбо
0
Эксперт .NET
 Аватар для Usaga
14100 / 9317 / 1349
Регистрация: 21.01.2016
Сообщений: 34,991
06.04.2018, 06:28
Tolyanych, я не увидел связи между моим вопросом выше и вашим ответом. Что мешает затлкивать к комбобоксы DataTable, а не выдумывать универсальные решения?

На самом деле. Я бы не использовал ни DataTable, ни какие-то ClData, а использовал бы строготипизированное решение или числовой массив индентификаторов записей. Т.е. каждую запись из определённой таблицы оформлял бы в виде объекта конкретного (не универсального) типа и уже эти типы запрашивал из БД, а не DataTable. И эти же объекты пихал в DropDown. Но универсального тут вряд ли что-то может быть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.04.2018, 06:28
Помогаю со студенческими работами здесь

Как программно указать БД в качестве источника данных для DataGridView?
Как сделать это кодом а не через десигнер? Т.е. данные из бд нужно занести в DataGridView уже в рантайме, как это сделать?

Не получается выбрать файл БД в качестве источника данных разрабатываемого приложения?
Здравствуйте! Подскажите пожалуйста, почему не получается выбрать файл БД в качестве источника данных разрабатываемого приложения? Куда...

В качестве источника данных к точечным диаграммам устанавливать преобразованный столбец
Здравствуйте. Если у меня в excel есть столбец t и столбец x, а на графике мне нужно показать зависимость логарифма t от логарифма x, а...

Базу SQL Server Compact Edition 4.0 нельзя выбрать в качестве источника данных в проекте
Установлен Visual Studio Ultimate 2010 SP1, SQL Server Compact Edition 4.0 и Visual Studio 2010 Tools for SQL Server CE 4.0 тоже. По идее...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru