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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление и удаление данных DataGridView 
V
    Опции темы
Master_
  Дата 10.6.2011, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Visual Studio 2010, ADO.NET.

Есть обычный DataGridView.
Он отображает данные из таблиц. 
Есть такая таблица:
Personal 
Цитата

full_name
qualification
operation_id



В просмотре, то есть в SELECT'е надо выводить не operation_id, а operation_name. Это я могу легко сделать исправив запрос в SelectCommand у TableAdapter'а.

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

full_name
qualification
[b]operation_name[/b]


Но вместо operation_name то мне в базу надо вбить operation_id, а вот как это сделать? Какие наводки? Вообще не пойму  smile 

Это сообщение отредактировал(а) Master_ - 10.6.2011, 21:49
PM   Вверх
Gluttton
Дата 10.6.2011, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



Master_, т.е. пользователь при вводе новой записи должен ввести и ID для неё?


--------------------
Слава Україні!
PM MAIL   Вверх
Master_
Дата 10.6.2011, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Нет, он выбирает или вводит operation_name, а при сохранении данных operation_name надо заменить на соответствующий operation_id..
PM   Вверх
Gluttton
Дата 11.6.2011, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



Цитата(Master_ @  10.6.2011,  23:56 Найти цитируемый пост)
он выбирает

В таком случае предположу, что используется DropDownList.
Если да, то решение, может быть следующим:
Код

<asp:DropDownList 
    id="dropDownListOperation"
    runat="server"
    DataSourceID="dataSourceOperation"
    DataTextField="operation"
    DataValueField="operation_id" />                        

Цитата(Master_ @  10.6.2011,  23:56 Найти цитируемый пост)
а при сохранении данных operation_name надо заменить на соответствующий operation_id.. 

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

Цитата(Master_ @  10.6.2011,  23:56 Найти цитируемый пост)
или вводит operation_name

Не представляю себе как это происходит.

Добавлено через 1 минуту и 39 секунд
Для справки.


--------------------
Слава Україні!
PM MAIL   Вверх
Экскалупатор
Дата 11.6.2011, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



Master_, ты можешь попробовать выбрать не три записи а четыре, т.е. и имя и id только показывать только то что тебе нужно, тогда при выборе чего то у тебя будет возможность прочесть из скрытого поля id и дальше с ним работать.
PM MAIL ICQ   Вверх
mongoloid
Дата 12.6.2011, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



 Если я правильно понял, то ситуация выглядит так:

1. Есть таблица Personal (full_name, qualification, operation_id)
2. Есть некая таблица Operation(operation_id, opertion_name)

 Задача: вывести на экран таблицу Personal, ввести в нее данные и сохранить. При этом вместо operation_id должно отображаться opertion_name (а в Personal, разумеется, должно сохраняться соответствующее operation_id)

 Подобную задачу я решил так:
 1. Создал БД  с таблицами в дизайнере Студии
 2. Подключил БД в качестве источника данных.
 3. Во вкладке "Источники данных" выполнил команду "Настроить источник данных с помощью мастера".
 4. В открывшемся окне галкой выделил нужные мне таблицы и поля (в вашем случае это таблицы Personal и Operation со всем полями)
 5. Перетащил из вкладки "Источники данных" нужную мне таблицу (Personal) на форму. 
 6. В свойствах появившегося на форме DataGridView есть свойство Columns, кликайте его в окне настройки свойств.
 7. В перечне отображаемых полей оставьте только нужные вам (в вашем случае это, видимо, full_name, qualification, operation_id)
 8. Выберите в списке полей ("Выбранные столбцы") столбец operation_id
 9. В свойствах этого столбца:
 9.1 установить ColumnType = DataGridViewComboBoxColumn
 9.2 DataSource = personalBindngSource (или как он у вас называется для вашей таблицы)
 9.3 DisplayMemeber = opertion_name
 9.4 ValueMember = operation_id

 Теперь в ДатаГридВью не нужно будет ручками вколачивать имя операции, будете выбирать посредством комбобокса. 

Это сообщение отредактировал(а) mongoloid - 12.6.2011, 17:06
PM MAIL   Вверх
Master_
Дата 12.6.2011, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Именно то, что нужно. Жалко только то что я это нашел сам перед тем как вы ответили smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

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

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


 




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


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

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