| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB .NET > Загрузка даных из Access в Combobox |
| Автор: Student2006 20.3.2011, 22:07 |
| Нужно, чтобы из базы данных Access загружались значения в Combobox. В Data Source выбираю нужную таблицу. В display member поле из таблицы, в value member соответствующий этому полю код (id). В selected value ставлю поле в которое будет подставляться value member. Что я делаю не так? Или я что-то не так понимаю, когда запускаю программу в combobox'e появляются нужные значения, но если выбрать одно из них в программе ничего нельзя больше сделать (всё блокируется). Как только в combobox'e ставлю код (например 1) всё работает нормально. Подскажите, в чем проблема, буду ОЧЕНЬ благодарен |
| Автор: diadiavova 20.3.2011, 22:12 | ||
Вот этого не понял. И этого тоже. |
| Автор: Экскалупатор 20.3.2011, 22:16 |
| Student2006, это выбранное значение, т.е. сюда можно поставить номер той записи(в комбобоксе) которая будет выделена и никаких |
| Автор: Student2006 20.3.2011, 22:20 |
| Есть таблица в базе, например "ФИО" с полями id, name Я В Data Source выбираю ФИО. В display member name, в value member id. В selected value выбираю другую таблицу в которую собираюсь загрузить данные из combobox'a. Не знаю как еще объяснить :( |
| Автор: diadiavova 20.3.2011, 22:22 |
Номер записи - это SelectedIndex. SelectedValue возвращает то свойство выбранного элемента(или столбец таблицы), которое указано в свойстве ValueMember комбобокса. |
| Автор: diadiavova 20.3.2011, 22:24 | ||
Тебе надо просто обработать событие SelectedIndexChanged и в обработчике выбирать таблицу или что там ты хочешь делать. А это свойство служит для другой цели(написал выше) |
| Автор: Экскалупатор 20.3.2011, 22:29 | ||
точно, немного перепутал... сори. Student2006, почитай http://msdn.microsoft.com/ru-ru/library/system.windows.forms.combobox.aspx. |
| Автор: Student2006 20.3.2011, 22:39 |
| Я, конечно, в программировании ничего не понимаю, но что конкретно я задал не так? Вроде бы всё правильно, почему не работает :( |
| Автор: Экскалупатор 20.3.2011, 22:58 |
| Student2006, опиши подробнее что должно происходить, хоть своими словами |
| Автор: Student2006 20.3.2011, 23:09 |
| Ну есть например БД "записная книжка" в ней предположим две таблицы:" имена" с полями id и name, и "книга" с полями id, name и phone(данныe в name подставляются из таблицы "имена"). мне нужно сделать запись во вторую таблицу. Соответсвенно, чтобы имена загружались из комбобокса. Все работает без проблем если в комбобоксе у меня id, но мне нужно что бы из него выпадали имена, а не цифры. |
| Автор: diadiavova 20.3.2011, 23:43 | ||
| Student2006, объясни, пожалуйста, а зачем тебе понадобилось разбивать эти данные на 2 таблицы, в то время как они, по идее, должны содержаться в одной? Опять-таки не очень понятно, что значит Как ты собираешься ее отображать и с помощью чего редактировать(если, конечно, речь идет о редактировании)?
Общий расклад с привязкой данных такой: Комбобокс привязываешь к датасету через байндингсорс. Выбираешь в нем дисплеймембер какой тебе надо(данные, ессно, содержатся в одной таблице. Это не обязательно для реализации функционала, но в твоем случае для разделения нет причин). Далее, я так понимаю тебе надо, чтобы в другом контроле отображалос значение выбранного в комбобоксе элемента. Возьмем к примеру текстбокс, можно его свойство Text привязать к тому же байндингсорсу, выбрать нужную колонку, которую хочешь отображать в текстбоксе и при выборе элемента в комбобоксе, в текстбоксе будет отображаться значение выбранного элемента. Добавлено через 8 минут и 11 секунд Вот собственно пример. Без базы данных, но с базой все так же выглядит. |