| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Отображение данных через DataGridView. |
| Автор: IQDDD 18.4.2012, 18:35 |
| Есть типизированные данные DataSetFruit для отображения DataGridView'ом. В базе данные хранятся в "сжатой" форме. Например, в таблице "Фрукты" значения поля "Сорт" хранятся не в виде строк: "яблоко", "мандарин" и т. п., а в виде числа tinyint: 0, 1, 2 и т. п. Ествественно, при отображении данных в DataGridView'е наблюдаем числа. Сопоставление строка-числа нам известно. Вопрос в том, как сделать некую предварительную обработку входящих "сжатых" данных для корректного отображения в DataGridView'е? |
| Автор: dextermd 18.4.2012, 21:08 |
| Насколько я понимаю это проект WinForms ? Приведите код в котором вы заполняете DataGridView данными. |
| Автор: IQDDD 18.4.2012, 21:28 | ||
|
| Автор: dextermd 19.4.2012, 00:43 |
| gamesTableAdapter это DataGridView ? |
| Автор: Veitmen 19.4.2012, 08:56 | ||||||
| Привет. Существует несколько подходов для решения этой задачи. Различаются они тем, в какой момент ты будешь получать связанные данные. В целом, более верно было бы решить эту задачу следующим образом. В БД создается таблица ТипФруктов. В этой таблице есть колонки Id и Name. Id - первичный ключ, Name - имя сорта. И в таблице Фрукты создать внешний ключ на таблицу ТипФруктов. Т.е. каждая запись таблицы Фрукты, будет содержать ссылку на ТипФруктов. Таким образом пользователь может легко добавлять типы фруктов в ваше приложение. При использовании такого подхода, не составит труда вытащить имя сорта используя SQL.
Т.е. вы уже получите все необходимые данные. Но если вы все же решили просто загрузить данные в ячейку грида, то делаем следующим образом. 1. Включаем у грида VirtualMode = true 2. Подписываемся на событие грида CellValueNeeded 3. Добавляем UnboundColumn в грид 4. В обработчике реализуем логику загрузки данных в ячейку по вашему идентификатору Пример:
В примере в ячейку кладется полное имя человека. Да, советую использовать DataBindingSource. В примере он используется. Добавлено через 3 минуты и 6 секунд
Нет. Это DataAdapter. Добавлено через 7 минут и 1 секунду Да, и почитайте чуть больше про виртуальный режим. А то я вам его предложил, а о последствиях не предупредил. http://msdn.microsoft.com/ru-ru/library/system.windows.forms.datagridview.virtualmode.aspx |