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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отображение данных через DataGridView. 
:(
    Опции темы
IQDDD
Дата 18.4.2012, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть типизированные данные DataSetFruit для отображения DataGridView'ом. В базе данные хранятся в "сжатой" форме. Например, в таблице "Фрукты" значения поля "Сорт" хранятся не в виде строк: "яблоко", "мандарин" и т. п., а в виде числа tinyint: 0, 1, 2 и т. п. Ествественно, при отображении данных в DataGridView'е наблюдаем числа. Сопоставление строка-числа нам известно. Вопрос в том, как сделать некую предварительную обработку входящих "сжатых" данных для корректного отображения в DataGridView'е?
PM MAIL   Вверх
dextermd
Дата 18.4.2012, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Насколько я понимаю это проект WinForms ? Приведите код в котором вы заполняете DataGridView данными.
PM MAIL   Вверх
IQDDD
Дата 18.4.2012, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

            SqlCeConnection connection = new SqlCeConnection(@"Data source=..\..\Databasegames.sdf");
            connection.Open();
            this.gamesTableAdapter.Connection = connection;
            gamesTableAdapter.Fill(gamesDataSet.Games);

PM MAIL   Вверх
dextermd
Дата 19.4.2012, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



gamesTableAdapter это DataGridView ?
PM MAIL   Вверх
Veitmen
Дата 19.4.2012, 08:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 3
Всего: 4



Привет.

Существует несколько подходов для решения этой задачи. Различаются они тем, в какой момент ты будешь получать связанные данные. 

В целом, более верно было бы решить эту задачу следующим образом. В БД создается таблица ТипФруктов. В этой таблице есть колонки Id и Name. Id - первичный ключ, Name - имя сорта. И в таблице Фрукты создать внешний ключ на таблицу ТипФруктов. Т.е. каждая запись таблицы Фрукты, будет содержать ссылку на ТипФруктов. Таким образом пользователь может легко добавлять типы фруктов в ваше приложение. При использовании такого подхода, не составит труда вытащить имя сорта используя SQL.
Код

select * from Фрукты as fr join ТипФруктов as typefr on (fr.FKТипФруктов = typefr.Id)

Т.е. вы уже получите все необходимые данные.

Но если вы все же решили просто загрузить данные в ячейку грида, то делаем следующим образом.

1. Включаем у грида VirtualMode = true
2. Подписываемся на событие грида CellValueNeeded
3. Добавляем UnboundColumn в грид
4. В обработчике реализуем логику загрузки данных в ячейку по вашему идентификатору
Пример:
Код

 var people = peopleBindingSource[e.RowIndex] as People;
            if (people != null)
            {
                e.Value = people.Name + " " + people.LastName;
            }

В примере в ячейку кладется полное имя человека.

Да, советую использовать DataBindingSource. В примере он используется.

Добавлено через 3 минуты и 6 секунд
Цитата(dextermd @ 19.4.2012,  00:43)
gamesTableAdapter это DataGridView ?

Нет. Это DataAdapter.

Добавлено через 7 минут и 1 секунду
Да, и почитайте чуть больше про виртуальный режим. А то я вам его предложил, а о последствиях не предупредил. smile

http://msdn.microsoft.com/ru-ru/library/sy...irtualmode.aspx
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

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


 




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


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

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