Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.74/34: Рейтинг темы: голосов - 34, средняя оценка - 4.74
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581

Динамически заполнить и фильтровать элементы в ComboBox

30.01.2015, 14:33. Показов 7367. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Работаю над расписанием занятие.


в datagridview добавил combobox. И при выборе группы и года учебы, загрузить в datagridview готовую базу данных. Но если база данных пуста, то юзер будет составлять эту базу данных. В столбце "Урок", надо загрузить название уроков для группы, и оттуда выбирать. Потом, в столбце "Учитель", делать фильтрацию, этот урок и в такие часы, какой учитель сможет преподавать. И этот список загрузить в комбобокс. Заполнение столбца "Учитель" выполнять после выбора значение в столбце "Урок".
Тут столбцы будут зависимы друг от друга.
Как все это сделать динамически? посоветуйте
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.01.2015, 14:33
Ответы с готовыми решениями:

Фильтровать Combobox
Здравствуйте! У меня задача, которую пока не получается решить( Есть две связанные таблицы БД - table 1, table 2. Таблицу table 1...

Как фильтровать список в combobox?
Как фильтровать список combobox1? Например в combobox1 список состоит из 90 строк: Item1, Item2, Item3 ...Item90. Как фильтровать другим...

Как привязать и фильтровать данные в comboBox?
Доброго времени суток! Помогите справиться с следующей задачей: Делаю базу на Access и создаю к ней клиент на C#. Требуется связать...

30
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
07.02.2015, 19:59
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от frech Посмотреть сообщение
проблема с обновлением данных в БД
Вот сколько ни пытался таким способом обновлять - ни разу терпения не хватило добиться результата . Поэтому делаю "по-тупому": кнопка "Обновить" и на нее код: соединяюсь с базой, считываю записи из датагрид и вставляю обычным SQL UPDATE в базу
0
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581
07.02.2015, 20:08  [ТС]
заметил одно, если изменять одну строку, то ошибок нет и запись не появляется в БД (не обновляется). Но если в двух строках изменить запись, то ошибка

Добавлено через 8 минут
заметил одно. При записи в одну строку, то никаких ошибок не появляется и нет новой обновленной записи в БД (все как было, так и остается). При записи более в двух строках, то появляются ошибки
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
07.02.2015, 20:18
Есть у меня в учебнике один пример такого соединения, там в такой строчке:
C#
1
oda1.Update((DataTable)dgv_lesson1.DataSource);
в скобках, через запятую указывается DataSet и название БД.
И еще там сказано, что параметр в WHERE (в данном случае ID) должен задаваться как новый параметр, цитирую: "потому что он не должен подлежать редактированию со стороны пользователя, а устанавливаться автоматически, независимо от пользователя". Учебник этот я, кстати, выкладывал в этой теме, посмотрите, может быть поможет (стр.269):
https://www.cyberforum.ru/ado-... 41341.html
1
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581
07.02.2015, 20:23  [ТС]
chumich, Как вы показали, oda1.Update, я делал раньше, но не пошло. Ошибка в том что UpdateCommand не задан. Вот поэтому решил пойти по этому пути
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
07.02.2015, 20:31
Цитата Сообщение от chumich Посмотреть сообщение
Учебник этот я, кстати, выкладывал
Гляньте всё-таки учебник, там практически всё как у вас, за исключением того, что я описал - попробуйте по нему сделать. Если других вариантов пока нет. Попытка - не пытка .
0
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581
07.02.2015, 20:45  [ТС]
Цитата Сообщение от chumich Посмотреть сообщение
Гляньте всё-таки учебник, там практически всё как у вас, за исключением того, что я описал - попробуйте по нему сделать. Если других вариантов пока нет. Попытка - не пытка .
Сделал))) но не получилась. Не обновляет

Добавлено через 7 минут
ну что, придется каждую строку читать и обновлять БД
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
07.02.2015, 20:52
Цитата Сообщение от frech Посмотреть сообщение
придется каждую строку читать и обновлять БД
Вот и я в конце концов к тому же пришел. Правда один двоечник у меня поленился код писать и делал обновление через Binding Navigator. И ведь работало . Только для этого нужно, чтобы одно поле обязательно ключевым было.
0
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581
09.02.2015, 19:12  [ТС]
привет. Добавляю данные в БД, там после "слова" добавляются пробелы. Многочисленно. Пока до 255 не дойдут.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using (OleDbConnection con = new OleDbConnection(connection))
            {
                
 
                string query = "INSERT INTO [" + TableName + "] ([subject], [hour_week]) VALUES (@subject,@hour_week)";
                con.Open();
                /*OleDbCommand del_com = new OleDbCommand(delete_datatable, con);
                del_com.ExecuteNonQuery();*/
 
                foreach (var listboxItem  in ltb_groupsubject.Items)
                {
                    OleDbCommand com = new OleDbCommand(query, con);
                    
                    com.Parameters.AddWithValue("@subject",listboxItem.ToString().Trim());
                    com.Parameters.AddWithValue("@hour_week", "20");
                    com.ExecuteNonQuery();
                }
                
                
 
            }
Например, слова "анатомия", то в БД он "анатомия "
Таблицу создаю так
C#
1
2
3
4
5
6
7
8
9
using (OleDbConnection con = new OleDbConnection(connectionstring))
                {
                    con.Open();
 
                    string query = "CREATE TABLE [" + tablename + "] ([id] Counter Primary Key, [subject] CHAR, [hour_week] INTEGER)";
 
                    OleDbCommand com = new OleDbCommand(query, con);
                    com.ExecuteNonQuery();
                }
0
 Аватар для chumich
2081 / 1239 / 464
Регистрация: 20.12.2014
Сообщений: 3,234
09.02.2015, 20:49
Цитата Сообщение от frech Посмотреть сообщение
добавляются пробелы
Тоже с такой проблемой в одном проекте столкнулся. Пробелы до и после слова. Пока не решил

Добавлено через 11 минут
Нарыл не как избавиться, а как работать несмотря на эту проблему:
http://webmasterschool.ru/sql2/ch6.php
А здесь про использование rtrim для обрезания строки:
http://webmasterschool.ru/sql2/ch7.php
Правда еще не придумал как использовать, но "истина где-то рядом"
0
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581
10.02.2015, 16:14  [ТС]
chumich, вот что нашел.
Этот случай бывает, когда я программно создаю таблицу. Но если в конструкторе создать таблицу, то никакие проблемы с пробелами не бывают. Я сравнил эти две таблицу. В одном месте есть разница "Сжатие Юникода". При создание этого поля программно, свойства этого поля "Нет". Изменил на "Да", и после того, какие данные добавляю, то все добавляются без пробелов
1
36 / 36 / 3
Регистрация: 17.07.2008
Сообщений: 581
10.02.2015, 16:26  [ТС]
теперь надо найти способ, как при создании таблицы изменить это свойства

Добавлено через 7 минут
накопал ответ
https://msdn.microsoft.com/en-... 40835.aspx

Unicode compression supports the fixed-length nchar(n) and nvarchar(n) data types. Data values that are stored off row or in nvarchar(max) columns are not compressed.

изменил код, и вся проблема решилась:
C#
1
2
3
4
5
6
7
8
9
 using (OleDbConnection con = new OleDbConnection(connectionstring))
                {
                    con.Open();
 
                    string query = "CREATE TABLE [" + tablename + "] ([id] Counter Primary Key, [subject] NVARCHAR, [hour_week] INTEGER)";
 
                    OleDbCommand com = new OleDbCommand(query, con);
                    com.ExecuteNonQuery();
                }
Добавлено через 2 минуты
[subject] CHAR изменил на NVARCHAR
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.02.2015, 16:26

ComboBox.DataSource и DataView: как заполнить ComboBox
Добрый вечер! Прочитал в книге, что "В результирующем DataView, будут видимы все столбцы исходный таблицы". То есть предположим если...

Как фильтровать элементы по вхождению значения свойства в строку?
такой вот фильтр выбирает элементы, имена которых начинаются со string: Код $arFilter = 'string%'; а как наоборот, выбрать те,...

Динамически создаваемый массив Combobox
Здравствуйте! Мне тут в программке надо принажатии кнопки создавать несколько Combobox'ов, сколько - заранее не известно. Я объявила массив...

Заполнить QListView динамически
Я создал виджет QListView с помощью интерактивного конструктора Qt Creator, соответсвенно он появился в коде разметки XML. Но мне нужно...

Заполнить динамически DropDownList
Здравствуйте! Хочу сделать, что бы админ, выбирал из DropDownList имя страницы, и получал ее контент для редактирования. Делаю...


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru