|
0 / 0 / 0
Регистрация: 13.03.2014
Сообщений: 21
|
||||||||||||
Выпадающий список в ячейках DataGridView14.04.2014, 10:19. Показов 19470. Ответов 20
Метки нет (Все метки)
Здравствуйте, возникла такая проблема не знаю как правильно вставить ComboBox в ячейку DataGridView. Имеется база MySQL в ней две таблицы Подразделение(Subdivision) и Журнал(Journal), вообщем в DataGridView вывожу таблицу Журнал и посредством DataGridViewComboBoxColumn делаю список из подразделений добавляю в таблицу Журнал и все данные которые уже были введены по подразделениям смещаются на следующий столбец, как это исправить???
0
|
||||||||||||
| 14.04.2014, 10:19 | |
|
Ответы с готовыми решениями:
20
Формат чисел в ячейках DataGridView Проверка на повторение содержимого в ячейках таблицы в DataGridView Выпадающий список |
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 14.04.2014, 12:43 | |
|
В чём проблема-то? Вставляется третьей, остальные сдвигаются вправо. Ты как заголовки колонкам назначаешь? Может там несоответствие номеров?
Вообще, насколько я знаю, при выборке в DataGrid набора более чем из 1 таблицы не возможно использовать стандартные средства DataGrid'а для записи изменений в БД . Если хочешь выбирать в выпадающем списке подразделение в журнале, то надо делать не так. Сначала выбираешь Журнал и Подразделения в две таблицы внутри одного DataSet (каждую своим SELECT без JOIN). Затем назначаешь связи DataRelation. И затем добавляешь колонку в Журнал, указывая DataSource, DisplayMember и ValueMember по таблице Подразделений. После этого связь работает автоматически.
0
|
|
|
0 / 0 / 0
Регистрация: 13.03.2014
Сообщений: 21
|
|
| 15.04.2014, 04:43 [ТС] | |
|
Заголовки колонок тут не причем, здесь проблема в том что мне нужно вставить в DataGrid список для выбора подразделения, но если у нас уже заполнены подразделения то они должны сразу быть выбраны а не сдвигаться вправо как это видно на картинке...
Попробовал сделать DataRelation, вот только не могу сообразить как вывести в один DataGrid при этом без ИД Подразделения а только с его Названием....
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
||||||
| 15.04.2014, 09:48 | ||||||
Сообщение было отмечено loidxxx как решение
Решение
Привожу пример с использованием базы Access. Есть 2 таблицы: основная Books (сожержит внешний ключ bSeries) и связанная Series (sNumber - первичный ключ, sName - текстовое представление). Связь по Books.bSeries = Series.sNumber. Требуется вывести Books в DataGrid, но вместо кода bSeries отображать выпадающий список, содержащий значения sName. Отображение предыдущего выбора также реализуется.
Чтобы это заработало, необходимо создание связи DataRelation и правильно заполнение полей DisplayMember, ValueMemeber и DataPropertyName при создании новой колонки. Колонка с внешним ключом просто делается невидимой, совсем удалять её нельзя.
4
|
||||||
|
0 / 0 / 0
Регистрация: 13.03.2014
Сообщений: 21
|
|
| 15.04.2014, 09:57 [ТС] | |
|
Спасибо большое, это именно то что я искал
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
||||||
| 15.04.2014, 09:57 | ||||||
|
Забыл про типы:
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 22.04.2014, 11:23 | |
|
Аналогично. Только добавляй DataGridViewCheckBoxColumn и устанавливай свойства DataPropertyName, TrueValue, FalseValue.
У тебя в БД поле соответствующее какой тип имеет?
0
|
|
|
0 / 0 / 0
Регистрация: 13.03.2014
Сообщений: 21
|
|
| 22.04.2014, 11:26 [ТС] | |
|
В БД поле имеет тип tinyInt(1), его надо преобразовывать или как?
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 22.04.2014, 16:30 | |
|
Не надо. Только укажи через TrueValue, FalseValue что считать "да", а что "нет".
Просто обычно есть булевский тип (в Access называется логический) и он по-хорошему сразу должен быть checkbox'ом в DataGridView.
1
|
|
|
0 / 0 / 1
Регистрация: 03.09.2015
Сообщений: 19
|
|
| 03.09.2015, 10:31 | |
|
Добрый день уважаемые форумчане. Нужна ваша помощь. Перелопатила кучу форумов но так решения и не нашла. Есть две таблицы. Тип ПС и Проект. Во второй таблице есть столбец Код_ОКП_типа_ПС, который является форен кеем из Типа ПС. Вывожу данные из таблицы Проект в DataGridView. Настроила все как выше, но при загрузке выпадает ошибка. "Исключение в DataGridView: Недопустимое значение DataGridViewComboBoxCell"
Кликните здесь для просмотра всего текста
con.Open(); // открываем подключение
proekt.Clear(); //очищаем набор данных OleDbCommand command = new OleDbCommand ("SELECT * FROM Проект", con);// sql запрос OleDbDataAdapter adp = new OleDbDataAdapter(command); // новый адаптер нужен для заполнения набора данных OleDbCommand command1 = new OleDbCommand ("SELECT * FROM Тип_ПС", con); OleDbDataAdapter adp1 = new OleDbDataAdapter(command1); // адаптер adp.Fill(proekt, "Проект"); // заполняем набор данных данными, которые вернул запрос adp1.Fill(proekt, "Тип_ПС"); // заполнение набора данных con.Close(); //закрываем подключение proekt.Tables["Тип_ПС"].Columns["Название"].Unique = true; // Установка связи таблиц Тип_ПС.Код = Проект.Код_ОКП_типа_ПС proekt.Relations.Add(new DataRelation("rlTipPSProekt", proekt.Tables["Тип_ПС"].Columns["Код"], proekt.Tables["Проект"].Columns["Код_ОКП_типа_ПС"])); dataGridView3.DataSource = proekt.Tables["Проект"]; // Проект - в DataGrid DataGridViewComboBoxColumn tip_ps = new DataGridViewComboBoxColumn(); // добавить новую колонку tip_ps.Name = "Тип ПС"; tip_ps.DataSource = kkps.Tables["Тип_ПС"]; tip_ps.DisplayMember = "Название"; // Отображать из Тип_ПС tip_ps.ValueMember = "Код"; tip_ps.DataPropertyName = "Код_ОКП_типа_ПС"; // Для связи с Проектом tip_ps.FlatStyle = FlatStyle.Flat; dataGridView3.Columns.Insert(9, tip_ps); dataGridView3.Columns.Insert(9, tip_ps); dataGridView3.Columns[9].Width = 200;
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 04.09.2015, 08:53 | |
|
А зачем 2 раза Insert()?
В таблицах нет ошибок?
0
|
|
|
0 / 0 / 1
Регистрация: 03.09.2015
Сообщений: 19
|
|
| 04.09.2015, 21:18 | |
|
Да это я уже удалила, но никак не повлияло. В принципе проблему я решила, оказывается надо датасет не глобально объявлять а внутри метода и плюс его еще очищать. Но мне интересно почему когда я ставлю в свойства датагрида AutoSizeRowsMode - allcels, то такая ошибка появляется сразу при загрузке и даже датагрид не может загрузиться.
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 04.09.2015, 21:32 | |
|
У меня как раз всё глобально сделано. Не знаю, почему у тебя локально вообще работает. Здесь надо проект видеть целиком.
0
|
|
|
0 / 0 / 1
Регистрация: 03.09.2015
Сообщений: 19
|
|
| 04.09.2015, 21:35 | |
|
У меня был датасет до этого объявлен не в методе самом а глобально даже перед лоад форм. И ошибка эта вылазила постоянно. Теперь когда я перенесла объявление дата сета в сам метод по заполнению датагрида, все стало работать. А про AutoSizeRowsMode на многих форумах пишут, только я связи тут не вижу никакой.
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 04.09.2015, 21:39 | |
|
Проект большой? Просто интересно посмотреть.
0
|
|
|
0 / 0 / 1
Регистрация: 03.09.2015
Сообщений: 19
|
|
| 04.09.2015, 21:59 | |
|
Да большой, ну и плюс авторские права
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 04.09.2015, 22:03 | |
|
Авторские права на проект с двумя таблицами?
0
|
|
|
0 / 0 / 1
Регистрация: 03.09.2015
Сообщений: 19
|
|
| 04.09.2015, 22:17 | |
|
Две таблицы-это всего лишь подключение справочников, и их уже больше за день стало!
0
|
|
|
0 / 0 / 0
Регистрация: 10.12.2016
Сообщений: 6
|
|
| 06.11.2018, 19:50 | |
|
Подскажите, как данные в базу сохранить обратно, то есть что бы что то выбрали в combobox сохранилось в базу?
0
|
|
| 06.11.2018, 19:50 | |
|
Помогаю со студенческими работами здесь
20
Выпадающий список C# выпадающий список выпадающий список в ComboBox PropertyGrid - выпадающий список объектов Выпадающий список после точки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|