| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Вывод информации в DataGridView |
| Автор: eon 18.11.2010, 14:27 |
| Задача следующая: Есть бд в MS SQL. База данных для заявок внутри предприятия. Ну типа helpdesk система. Есть таблицы: Requests (сами завки), Files (таблица для прикрепления файлов к заявкам), Naimenovanie (справочник наименований проблем), Utochnenie (Справочник уточнений для Наименований), и т.д.. Есть база пользователей в домене - Active Directory. Таблица Request: 1. id - номер заявки, 2. user_guid - глобальный уникальный номер пользователя в Active Directory, 3. naimenovanie_id - номер наименования из справочника Naimenovanie, 4. utochnenie_id - номер уточнения из справочника Utochnenie, 5. status_id - текущий статус заявки из справочника Status, 6. time_voznik_id - время возникновения проблемы из справочника Time_voznik, 7. podrobnoe_opisanie – подробное описание проблемы, 8. administrator_guid – глобальный уникальный номер пользователя, являющегося членом группы Administrators Request, в Active Directory, 9. comment – комментарий, оставленный к заявке. 10. time_ustr_id – желаемое время устранения из справочника Time_ustr. Ну еще некоторые поля, к делу пока не относящиеся. Вот так вот. Это основная таблица БД. Что я хочу видеть в DataGridView? Следующие столбцы: (причем всё буду писать программно, ручками) 1. Номер заявки – id заявки из таблицы Request (databound column); 2. Имя О. Фамилия пользователя – из Active Directory по user_guid из таблицы Requests(unbound column); 3. Отдел – из Active Directory по user_guid(unbound column); 4. Должность – из Active Directory по user_guid(unbound column); 5. Почтовый адрес – из Active Directory по user_guid(unbound column); 6. Телефон – из Active Directory по user_guid(unbound column); 7. Время поступления заявки - из таблицы Request (databound column); 8. Наименование проблемы – поле name из таблицы Naimenovanie по naimenovanie_id из таблицы Requests (не знаю databound column или unbound column, если будет браться из другой таблицы); 9. Уточнение уточнение - поле name из таблицы Utochnenie по utochnenie_id из таблицы Requests (не знаю databound column или unbound column); 10. Текущий статус заявки - поле name из таблицы Status по status_id из таблицы Requests (не знаю databound column или unbound column); 11. Время возникновения проблемы - поле name из таблицы Time_voznik по time_voznik_id из таблицы Requests (не знаю databound column или unbound column); 12. Подробное описание проблемы – из поля podrobnoe_opisanie из таблицы Requests (databound column); 13. Назначенный исполнитель - Имя О. Фамилия администратора из Active Directory по administrator_guid из таблицы Requests(unbound column); 14. Количество файлов – количество файлов прикрепленных к заявке из таблицы Files по request_id количество (unbound column); И т.д. Предположим, есть такая запись в таблице Requests: Id 34 User_guid 37856-3459-а4536-р545-456 Naimenovanie_id 3 Utochnenie_id 36 Status_id 2 Time_voznik_id 3 podrobnoe_opisanie – При включении компьютера появляется ошибка 0х4574404. administrator_guid – 5н6846-45764-45645-4564-арпа comment – Ирина В. Петрова (13.10.10 12:34:30): Помогите пожалуйста. time_ustr_id – 4 Я хочу чтобы в датагридвью1 вывелось: | 34 | Ирина В. Петрова | Отдел контроля качества | Экономист | [email protected] | 2020 | 13.10.10 12:34:30 | Проблемы с компьютером | Компьютер не загружается | В очереди | Вчера | При включении компьютера появляется ошибка 0х4574404. | Иван И. Иванов | 3 | Уже написал программу и тестовую БД, всё работает хорошо. Но при проектировании БД не связывал таблицы. То есть таблица Request содержит в основном много текста, а надо бы, чтобы id-шники содержала. Впервые разрабатываю реальную БД. Возможно, что-то неправильно. Так вот вопросы: 1. Обязательно ли назначать всякие там внешние ключи для вывода информации из таблиц в одну datagridview? Как это делается? 2. Может чего посоветуете, что неправильно мыслю и т.д. и т.п. |
| Автор: jonie 18.11.2010, 22:40 |
| Вариаты: Во-первых MSSQL умеет AD. Во-вторых - создайте просто класс, содержащий все ваши поля (DTO иначе говоря), сделайте в памяти BindingList<вашКласс>, заполните его ЧЕМ хотите и КАК хотите и просто установите DataSource у грида. Это делаете примерно так (см. фильм в аттаче). .... |