![]() |
|
Модераторы: diadiavova, gambit |
![]()
|
|
| DviRUS |
|
|||
![]() Капыч ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.10.2006 Где: Волгоград Репутация: нет Всего: 5 |
Такой вопрос:
Есть 2 ListBox'a, и база данных Acces. Первый листбок заполняется при закрузке, а второй должен заполняться при выделении элемента в первом. Тесть - выделяем группу Машины, у нас во втором появляется "Ваз, Газ, Лаз". В базе данных несколько таблиц - первая "Категории", а остальные - с именами тех или иных категорий, в которых и содержиться инфа. Аналогично необходимо выводить таблицы в DataGridView. Это сообщение отредактировал(а) DviRUS - 29.10.2008, 23:50 -------------------- Это не только мерзко, но и невозможно! (с) |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
ИМХО - база неправильно спроектирована. Все машины надо в одну таблицу засунуть, в этой таблице добавить колонку "идентификатор категории" и связать её с идентификатором в первой таблице(если вообще есть необходимость выделять категории в отдельную таблицу. листбоксы связать с таблицей(таблицами) и при выделении элемента в первом листбоксе, менять свойство фильтр элемента BindingSource.
Если структуру данных по каким-либо причинам изменить нельзя, то видимо прийдётся менять DataSource самого листбокса на соответствующую таблицу. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| DviRUS |
|
|||
![]() Капыч ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.10.2006 Где: Волгоград Репутация: нет Всего: 5 |
Но как их в одно категорию засунуть? Ведь у "ВАЗ, ГАЗ, ЛАЗ" тоже будут подкатегории - Синий, Серый, красный... как можно это в 1 таблицу впихнуть?
Это сообщение отредактировал(а) DviRUS - 30.10.2008, 10:41 -------------------- Это не только мерзко, но и невозможно! (с) |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Добавить колонку "Цвет"
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| DviRUS |
|
|||
![]() Капыч ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.10.2006 Где: Волгоград Репутация: нет Всего: 5 |
diadiavova, я не спрашивал совета как мне лучше распределить таблицы, прочти вопрос заного и если есть что ответить - ответь. Есть база и мне не хочется ее переделывать.
-------------------- Это не только мерзко, но и невозможно! (с) |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Да и кстати я не говорил, что в одну таблицу надо пихать всё. Если категория содержит много разных данных(полей/колонок), то её надо в отдельную таблицу выделить, а вот однотипные объекты(как то машины например) в другую, ведь у них один и тот же набор свойств. Просто для того, чтобы отнести запись к той или иной категории, в таблице "машины" надо организовать колонку, в которой будет содержаться категория(CatId), и эту колонку надо связать с аналогичной колонкой таблицы "категории". Только в категориях эта колонка должна содержать уникальные записи(индексированные поля), можно даже счётчик поставить, а в таблице "машины" в этом поле записи не будут уникальными, таким образом это будет связь "один ко многим"
Добавлено через 2 минуты и 9 секунд
Тогда прочти первый ответ. Я написал, что если переделать нельзя, то надо управлять свойством DataSource. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| DviRUS |
|
|||
![]() Капыч ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.10.2006 Где: Волгоград Репутация: нет Всего: 5 |
diadiavova, Хорошо, тогда так: Из БД, из таблицы "Машины" загружается список машин в ДистБокс1. Мы выделяем в первом листбоксе машину "ГАЗ" и.... И вот с этого момента мне необходимо заполнить Листбокс2 из таблицы "ГАЗ", из колонки "Название автомобиля". После выделения "ГАЗа", необходимо заполнение полей TextBox1, 2, 3... из заданой (выделеной таблицы). Я не то что не могу все это сделаь, да я даже не могу приравнять название таблицы, которую нужно открыть, с выделеным обьектом в листБоксе1... Я уже не знаю куда податься...
-------------------- Это не только мерзко, но и невозможно! (с) |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Слушай, давай про текстбоксы потом, а то когда начинаешь решать сразу несколько проблем, не удаётся решить ни одной.
Что значит
Что ты понимаешь под названием таблицы? У неё есть имя в коде, и есть (как там это называется) заголовок что ли. Сначала определи как таблицы называются в коде. Далее Я даже не знаю, как ты подключал базу, и как обращаешься к ней. Используешь ты для этого инструменты студии или пишешь код сам. Является ли датасет копией базы или там прибамбасы свои. Вариантов очень много. Задача, которую ты решаешь - не сложная, но если ты не разобрался как работать с базами, то естественно у тебя будут возникать проблемы. Если есть возможность , сделай небольшую вырезку твоей базы, и приаттач к следующему сообщению. Я напишу простенький примерчик и выложу его. Только смотри за объёмом. Тут не больше 1мб можно приаттачивать, а ещё мой проектик будет, иак что база должна быть малепусенькой. Добавлено @ 23:34 Да и ещё вопрос. Если в процессе работы программы тебе понадобится добавить категорию, ты будешь новую таблицу создавать в базе? Тогда тебе прийдётся все последствия предусмотреть. Это сообщение отредактировал(а) diadiavova - 30.10.2008, 23:35 -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| DviRUS |
|
|||
![]() Капыч ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.10.2006 Где: Волгоград Репутация: нет Всего: 5 |
Пример в аттаче
Распаковать так чтобы база данных была в директории C:/temp/mash.mdb Присоединённый файл ( Кол-во скачиваний: 7 )
temp.rar 70,86 Kb-------------------- Это не только мерзко, но и невозможно! (с) |
|||
|
||||
| DviRUS |
|
|||
![]() Капыч ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.10.2006 Где: Волгоград Репутация: нет Всего: 5 |
Да - я в курсе. Присоединённый файл ( Кол-во скачиваний: 2 )
temp.rar 70,86 Kb-------------------- Это не только мерзко, но и невозможно! (с) |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Тут у меня небольшая(а может и большая) проблема. Припопытке подключить или изменить базу даннных, студия пишет, что не удалось загрузить сборку, которая используется в редакторе данных. Кроме того, у меня студия 2008, и твой проект пришлось преобразовывать, результат на твоей студии может не пойти.
Но просмотреть твой проект мне удалось. К таблицам ты обратиться не можешь из-за того, что в твоём проекте их просто нет. Доступ к данным из базы осуществляется при помощи элемента DataSet. Открой его в дизайнере и просто перетащи из источников данных, подключенных к проекту, нужные таблицы. Их можно переименовать в том же дизайнере, тогда они появятся в проекте, и к ним можно будет обратиться. Из примеров могу предложить набросок базы, сконструированной правильно. Если в ближайшее время удастся устранить проблему - пришлю пример, нет - прийдётся на пальцах объяснять по памяти. Пока подключай таблицы там видно будет. Присоединённый файл ( Кол-во скачиваний: 8 )
Auto.rar 10,13 Kb-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| DviRUS |
|
|||
![]() Капыч ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.10.2006 Где: Волгоград Репутация: нет Всего: 5 |
diadiavova, таблицы у меня там есть :( Сейчас установлю 2008
-------------------- Это не только мерзко, но и невозможно! (с) |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
He знаю: может это конечно с глюками связано, но когда я открыл редактор DataSet, то обнаружил там одну-единственную таблицу Машины, а всё остальные, которые ты собираешься во втором листбоксе отображать - отсутствуют. Возможно из-за глюков, но тот факт, что ты тоже не можешь найти эти таблицы говорит о том, что они просто не подключены к DataSet
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| DviRUS |
|
|||
![]() Капыч ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.10.2006 Где: Волгоград Репутация: нет Всего: 5 |
А... вот ты о чем! Ну так для других таблиц надо открывать новое подключение!... Это я не знаю как сделать
-------------------- Это не только мерзко, но и невозможно! (с) |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Тебе просто в окно "Data Sources" надо добавить базу данных , из которой ты собираешься всё брать. Там мастер тебе поможет выполнить настройки, выбрать базу создать строку подключения и т. д.
После этого можно или назначить DataSource листбоксу, или создать типизированный датасет и брать всё из него. И потом: а как ты эту таблицу подключил? Всё так же и делай. ЗЫ А мою базу напрасно посмотреть не хочешь, с такой базой работать на много удобнее. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
![]()
|
| Правила форума VB .NET | |
|
|
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |