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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение значения поля в dataGridView, Получение значения поля в dataGridView 
V
    Опции темы
evgeniyr
Дата 24.3.2006, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте.
Второй день smile , необходимо получить значение определенного поля в dataGridView. Пример, есть таблица с полями id, name. На форме лежат sqlConnection, sqlDataAdapter, DataSet и dataGridView. Необходимо получить значение поля id в текущей строке dataGridView. Делаю так: dataSet11.MyTable.Rows[dataGridView1.CurrentRow.Index]["id"].ToString(), все прекрасно, но если я делаю сортировку по колонке Name(щелкаю мышью в заголовке), то этот код возвращает мне порядковые номера строк. Как же достучаться до значения id при различной сортировке?
Заранее благодарен.
PM MAIL ICQ   Вверх
mr.DUDA
Дата 24.3.2006, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



DataGridView не обязательно bind-ится на DataSet:
Цитата
The DataGridView control supports the standard Windows Forms data binding model, so it will bind to instances of classes described in the following list:

Any class that implements the IList interface, including one-dimensional arrays.
Any class that implements the IListSource interface, such as the DataTable and DataSet classes.
Any class that implements the IBindingList interface, such as the BindingList class.
Any class that implements the IBindingListView interface, such as the BindingSource class.


Поэтому в гриде нет никаких свойств и методов, позволяющих явно получить текущий DataRow. Расчитывать же на то, что в датасете номер строки таблицы = CurrentRow.Index, неверно.

Получить текущий DataRow можно с пом. CurrencyManager:

Код

    CurrencyManager cmgr = (CurrencyManager)this.dataGridView1.BindingContext[this.dataGridView1.DataSource];
    DataRow row = ((DataRowView)cmgr.Current).Row;



--------------------
user posted image
PM MAIL WWW   Вверх
evgeniyr
Дата 24.3.2006, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо, но не понятно что с этим делать.
PM MAIL ICQ   Вверх
mr.DUDA
Дата 24.3.2006, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Цитата(evgeniyr @ 24.3.2006, 11:27 Найти цитируемый пост)
Спасибо, но не понятно что с этим делать.

1) получили DataRow вышеописанным способом
2) получили поле "id" из DataRow:
Код

string id = row["id"].ToString();




--------------------
user posted image
PM MAIL WWW   Вверх
evgeniyr
Дата 24.3.2006, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



To mr.DUDA:
Огромное спасибо!
PM MAIL ICQ   Вверх
mr.DUDA
Дата 24.3.2006, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Цитата(evgeniyr @ 24.3.2006, 11:40 Найти цитируемый пост)
Огромное спасибо!

пожалуйста


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

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

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

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


 




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


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

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