![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
Экскалупатор |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 2 Всего: 24 |
есть DataSet в котором есть две таблицы и отношение между ними один ко многим. Я хочу отобразить в одном DataGridView данные из этих таблиц, что бы на каждую запись основной табилицы показывались данные из связанной. Таблицы: "Question" и "Answer" и отношение "relation".
читал вот эту тему но ничего у меня не работает, отображается только одна таблица, а связанная не отображается. пишу так:
Dataset заполняется так(DataWorking класс работающий с базой, это его метод):
подскажите в чем ошибка, а то я что то уже замучился. ![]() Это сообщение отредактировал(а) Экскалупатор - 10.7.2009, 07:16 |
||||
|
|||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
А почему не добавить в DataSet объединённую таблицу и отображать её? Так ведь проще.
Что-то типа
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 2 Всего: 24 |
diadiavova, м-м-м, а как будет это отображено? дело в том что у меня один вопрос и много ответов, т.е. удобно было бы сделать что бы можно было нажать на плюсик рядом с вопросом и открывался список ответов к этому вопросу. а если объединенно то так не получиться(наверное).
|
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
Ну насчёт плюсиков не знаю, вроде есть такая возможность, но как это работает я не в курсе. Можно сделать, чтобы вопрос отображался несколько раз, тогда, конечно понадобиться внешнее объединение, а не внутреннее. Но если у тебя что-то типа теста, то может грид - не самый оптимальный вариант?
Добавлено через 5 минут и 43 секунды Да, я чойт ступил, мне показалось, что у тебя написано "связь один к одному" -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
Поправил запрос, сортируется по гипотетическому полю question таблицы Question ![]() -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 2 Всего: 24 |
diadiavova, у меня не тест, суть задачи такова: есть программа для составления характеристик, в программе есть список вопросов и ответов к ним, выбирая которые пользователь будет составлять характеристику, это сама прога. а то что я хочу сделать это редактор этих самых вопросов и ответов, т.е. пользователь заходит в редактор и может тут добавлять вопросы и ответы, а так же выставлять как бы статус вопросов и ответов, если например напротив вопроса стоит true то вопрос будет задаваться в процессе создания характеристики, а если false то нет, с ответами тоже самое. я думаю что объединенный DataGridView подходит для этого дела просто замечательно. сейчас у меня это работает через два DataGridView, т.е. в одном выбираешь вопрос, а во втором отображается список ответов к нему, но это как то не красиво выглядит и не совсем удобно, хочется в одном. ну или предложите как по другому сделать...
поправлюсь: поправлюсь в базе много вопросов и много ответов, вопросы и ответы можно добавлять Это сообщение отредактировал(а) Экскалупатор - 10.7.2009, 14:15 |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
Грид можно и один использовать. У него есть свойство DataMember, переключая которое, можно выбирать отображаемую таблицу. Структура данных в дэйтасете не обязательно должна совпадать со структурой базы. Можно туда добавить результаты различных запросов, в том числе и объединяющих и отображать всё это в одном гриде.
Добавлено через 52 секунды Не одновременно ессно, но сделать всё можно очень удобно. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 2 Всего: 24 |
не, мне кажется будет лучше что бы сразу, но я подумаю.
Добавлено через 2 минуты и 30 секунд мне уже больше для себя стало интересно, ведь наверняка как то можно, и скорее всего что очень просто так сделать, но вот как именно просто... |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
Ну если дело в этом, то ищи ![]() ![]() -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
SKrivosein |
|
|||
![]() Идущий в даль ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 9.6.2007 Где: Praha - Прага Репутация: нет Всего: 8 |
ошибка
Это сообщение отредактировал(а) SKrivosein - 11.7.2009, 04:39 |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
Собственно об этом я подумал из-за того, что в старом гриде была. В новом порылся не нашёл, так что вот вытащил старый грид и набросал примерчик. Покопайся, там вроде можно было и разворачивающийся список делать Это сообщение отредактировал(а) diadiavova - 11.7.2009, 12:09 Присоединённый файл ( Кол-во скачиваний: 43 ) ![]() -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 2 Всего: 24 |
diadiavova, спасибо. вот это уже ближе к тому что мне хочется. только он как то странно отображает сначала связь, а потом уже данные по связи, надо что бы сразу отображал связанные данные и не в новой таблице, а одновременно со основными данными. как например Access делает, когда у него есть связанные таблицы.
|
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
Ну есть там вроде такая фича, но как её замутить я не в курсе. Помню работал ещё с версией 2003 года и тогда как мне помнится вытащил откуда-то из файлов винды большой XML документ и отобразил его в гриде и вот он по-моему отображался как тебе надо, но уверенности нет, возможно это студия его так отображала(тогда в студии был такой дизайнер хмл-а). Сейчас точно уже не помню, так что, обнадёживать не буду.
Вот можешь тут поискать инфу http://rsdn.ru/article/dotnet/datagridfaq.xml http://rsdn.ru/article/dotnet/DataGridView20.xml http://rsdn.ru/article/dotnet/DataGridView20part2.xml Про старый грид там неплохая статья(первая ссылка вроде бы) -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
Экскалупатор |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 2 Всего: 24 |
нашел вот такую инфу, как сделать что бы не отображалось название связи, а сразу открывались дочерние данные:
источник тут. почти все что нужно, если бы не отображение отдельно разных таблиц, т.е. сначала основных данных, а потом связанных, но уже лучше чем ничего, буду искать дальше. |
||||||||||
|
|||||||||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 16 Всего: 142 |
В DataGrid'е за отображение отвечают стили: таблиц, колонок итд. Даже логика прорисовки самого грида зашита в них. Так что если в них серьёзно покопаться, то теоретически можно получить любые эффекты. Только чойт мне кажется, что "овчинка выделки не стоит". Чисто для себя, чтобы разобраться как устроен грид это даже полезно, там много чего интересного, но пихать такую трахомбу в прогу я бы не стал
![]() -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |