Модераторы: diadiavova, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заполнение ListBox из Acces MDB 
:(
    Опции темы
DviRUS
Дата 29.10.2008, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Капыч
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.10.2006
Где: Волгоград

Репутация: нет
Всего: 5



Такой вопрос:
Есть 2 ListBox'a, и база данных Acces. Первый листбок заполняется при закрузке, а второй должен заполняться при выделении элемента в первом. Тесть - выделяем группу Машины, у нас во втором появляется "Ваз, Газ, Лаз". В базе данных несколько таблиц - первая "Категории", а остальные - с именами тех или иных категорий, в которых и содержиться инфа. Аналогично необходимо выводить таблицы в DataGridView.

Это сообщение отредактировал(а) DviRUS - 29.10.2008, 23:50


--------------------
Это не только мерзко, но и невозможно! (с)
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 30.10.2008, 03:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



ИМХО - база неправильно спроектирована. Все машины надо в одну таблицу засунуть, в этой таблице добавить колонку  "идентификатор категории" и связать её с идентификатором в первой таблице(если вообще есть необходимость выделять категории в отдельную таблицу. листбоксы связать с таблицей(таблицами) и при выделении элемента в первом листбоксе, менять свойство фильтр элемента BindingSource.
Если структуру данных по каким-либо причинам изменить нельзя, то видимо прийдётся менять DataSource самого листбокса на соответствующую таблицу.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
DviRUS
Дата 30.10.2008, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Капыч
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.10.2006
Где: Волгоград

Репутация: нет
Всего: 5



Но как их в одно категорию засунуть? Ведь у "ВАЗ, ГАЗ, ЛАЗ" тоже будут подкатегории - Синий, Серый, красный... как можно это в 1 таблицу впихнуть?

Это сообщение отредактировал(а) DviRUS - 30.10.2008, 10:41


--------------------
Это не только мерзко, но и невозможно! (с)
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 30.10.2008, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Добавить колонку "Цвет"


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
DviRUS
Дата 30.10.2008, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Капыч
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.10.2006
Где: Волгоград

Репутация: нет
Всего: 5



diadiavova, я не спрашивал совета как мне лучше распределить таблицы, прочти вопрос заного и если есть что ответить - ответь. Есть база и мне не хочется ее переделывать.


--------------------
Это не только мерзко, но и невозможно! (с)
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 30.10.2008, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Да и кстати я не говорил, что в одну таблицу надо пихать всё. Если категория содержит много разных данных(полей/колонок), то её надо в отдельную таблицу выделить, а вот однотипные объекты(как то машины например) в другую, ведь у них один и тот же набор свойств. Просто для того, чтобы отнести запись к той или иной категории, в таблице "машины" надо организовать колонку, в которой будет содержаться категория(CatId), и эту колонку надо связать с аналогичной колонкой таблицы "категории". Только в категориях эта колонка должна содержать уникальные записи(индексированные поля), можно даже счётчик поставить, а в таблице "машины" в этом поле записи не будут уникальными, таким образом это будет связь "один ко многим"

Добавлено через 2 минуты и 9 секунд

Цитата(DviRUS @  30.10.2008,  13:07 Найти цитируемый пост)
я не спрашивал совета как мне лучше распределить таблицы, прочти вопрос заного и если есть что ответить - ответь. Есть база и мне не хочется ее переделывать. 

Тогда прочти первый ответ. Я написал, что если переделать нельзя, то надо управлять свойством DataSource.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
DviRUS
Дата 30.10.2008, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Капыч
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.10.2006
Где: Волгоград

Репутация: нет
Всего: 5



diadiavova, Хорошо, тогда так: Из БД, из таблицы "Машины" загружается список машин в ДистБокс1. Мы выделяем в первом листбоксе машину "ГАЗ" и.... И вот с этого момента мне необходимо заполнить Листбокс2 из таблицы "ГАЗ", из колонки "Название автомобиля". После выделения "ГАЗа", необходимо заполнение полей TextBox1, 2, 3... из заданой (выделеной таблицы). Я не то что не могу все это сделаь, да я даже не могу приравнять название таблицы, которую нужно открыть, с выделеным обьектом в листБоксе1... Я уже не знаю куда податься...


--------------------
Это не только мерзко, но и невозможно! (с)
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 30.10.2008, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Слушай, давай про текстбоксы потом, а то когда начинаешь решать сразу несколько проблем, не удаётся решить ни одной.
Что значит 

Цитата(DviRUS @  30.10.2008,  23:18 Найти цитируемый пост)
да я даже не могу приравнять название таблицы, которую нужно открыть, с выделеным обьектом в листБоксе1

Что ты понимаешь под названием таблицы? У неё есть имя в коде, и есть (как там это называется) заголовок что ли. 
Сначала определи как таблицы называются в коде. 
Далее
Я даже не знаю, как ты подключал базу, и как обращаешься к ней. Используешь ты для этого инструменты студии или пишешь код сам. 
Является ли датасет копией базы или там прибамбасы свои. Вариантов очень много. 
Задача, которую ты решаешь - не сложная, но если ты не разобрался как работать с базами, то естественно у тебя будут возникать проблемы.
Если есть возможность , сделай небольшую вырезку твоей базы, и приаттач к следующему сообщению.
Я напишу простенький примерчик и выложу его. Только смотри за объёмом. Тут не больше 1мб можно приаттачивать, а ещё мой проектик будет, иак что база должна быть малепусенькой.

Добавлено @ 23:34
Да и ещё вопрос.
Если в процессе работы программы тебе понадобится добавить категорию, ты будешь новую таблицу создавать в базе? Тогда тебе прийдётся все последствия предусмотреть.

Это сообщение отредактировал(а) diadiavova - 30.10.2008, 23:35


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
DviRUS
Дата 31.10.2008, 02:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Капыч
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.10.2006
Где: Волгоград

Репутация: нет
Всего: 5



Пример в аттаче
Распаковать так чтобы база данных была в директории C:/temp/mash.mdb

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  temp.rar 70,86 Kb


--------------------
Это не только мерзко, но и невозможно! (с)
PM MAIL ICQ Skype   Вверх
DviRUS
Дата 31.10.2008, 02:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Капыч
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.10.2006
Где: Волгоград

Репутация: нет
Всего: 5



Цитата(diadiavova @  30.10.2008,  23:32 Найти цитируемый пост)
Если в процессе работы программы тебе понадобится добавить категорию, ты будешь новую таблицу создавать в базе? Тогда тебе прийдётся все последствия предусмотреть.

Да - я в курсе.

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  temp.rar 70,86 Kb


--------------------
Это не только мерзко, но и невозможно! (с)
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 31.10.2008, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Тут у меня небольшая(а может и большая) проблема. Припопытке подключить или изменить базу даннных,  студия пишет, что не удалось загрузить сборку, которая используется в редакторе данных. Кроме того, у меня студия 2008, и твой проект пришлось преобразовывать, результат на твоей студии может не пойти.
Но просмотреть твой проект мне удалось.
К таблицам ты обратиться не можешь из-за того, что в твоём проекте их просто нет. 
Доступ к данным из базы осуществляется при помощи элемента DataSet. Открой его в дизайнере и просто перетащи из источников данных, подключенных к проекту, нужные таблицы. Их можно переименовать в том же дизайнере, тогда они появятся в проекте, и к ним можно будет обратиться.
Из примеров могу предложить набросок базы, сконструированной правильно. Если в ближайшее время удастся устранить проблему - пришлю пример, нет - прийдётся на пальцах объяснять по памяти. Пока подключай таблицы там видно будет.


Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  Auto.rar 10,13 Kb


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
DviRUS
Дата 31.10.2008, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Капыч
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.10.2006
Где: Волгоград

Репутация: нет
Всего: 5



diadiavova, таблицы у меня там есть :( Сейчас установлю 2008


--------------------
Это не только мерзко, но и невозможно! (с)
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 31.10.2008, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



He знаю: может это конечно с глюками связано, но когда я открыл редактор DataSet, то обнаружил там одну-единственную таблицу Машины, а всё остальные, которые ты собираешься во втором листбоксе отображать - отсутствуют. Возможно из-за глюков, но тот факт, что ты тоже не можешь найти эти таблицы говорит о том, что они просто не подключены к DataSet


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
DviRUS
Дата 31.10.2008, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Капыч
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.10.2006
Где: Волгоград

Репутация: нет
Всего: 5



А... вот ты о чем! Ну так для других таблиц надо открывать новое подключение!... Это я не знаю как сделать


--------------------
Это не только мерзко, но и невозможно! (с)
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 31.10.2008, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Тебе просто в окно "Data Sources" надо добавить базу данных , из которой ты собираешься всё брать. Там мастер тебе поможет выполнить настройки, выбрать базу создать строку подключения и т. д.
После этого можно или назначить DataSource листбоксу, или создать типизированный датасет и брать всё из него. 

И потом: а как ты эту таблицу подключил? Всё так же и делай.

ЗЫ
А мою базу напрасно посмотреть не хочешь, с такой базой работать на много удобнее.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0531 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.