[C#]Sortowanie DataGridView, a DataSet


(Qarlos) #1

Witam

Mam problem z efektywnym połączeniem komponentów wspomnianych w temacie.

DataSet usupełniam za pomocą DataAdaptera z przygotowanym wcześniej zapytaniem.

Następnie uzupełniam DataGridView DataSet'em, ale tylko wybranymi kolumnami (np. "id" nie pojawie sie w DataGridView ).

Klikając w belke nagłowka danej kolumny następuje automatyczne sortowanie kolumn w DataGridView, niestety nie przekłada się to na DataSet. A z DataSet'a chciałbym odczytać "id" zaznaczonego wiersza w DataGridView.

Czy ktoś wie jak rozwiązać ten problem?


(system) #2

Rozwiązaniem jest dodatkowa kolumna w DataGridView z potrzebnym ci id oraz szerokością 0 pikseli - nie będzie widoczna dla użyszkodnika.


(somekind) #3

Tylko po co szerokość na 0, skoro można Visible ustawić na false? :shock:

Zeter - nie wiem czy używasz wizardów, czy też tworzysz kod ręcznie (lepsze wyjście). Ale masz dostęp do edycji kolumn dla DataGridView, chociażby z form designera. Z DataSetu pobieraj kolumnę z id i przypisz do DataGridView, ale ustaw jej widoczność na false. Teraz po zaznaczeniu wiersza będziesz mógł dobrać się do tego id tak:

int idZBazy = (int) dataGridView1.CurrentRow.Cells[0].Value;

(przy założeniu, że id jest int, i jest pierwszą kolumną w DataGridView)

P.S. Chyba wypełniasz tę DataGridView tabelą z DataSeta, całym raczej się nie da :wink:


(Qarlos) #4

Dzięki za odpowiedzi.

Nie używam wizard'ów, wszystko piszę z ręki.

Tez myślałem nad tym, aby ukryć kolumne z "id", ale chciałem tego uniknąć. Raczej chciałem zrobić to na wzór rozwiązań Borlandowych.

Trudno, na razie będę musiał zastosować takie rozwiązanie, ale jakby ktoś miał inny pomysł chętnie przeczytam i podyskutuję :-).

Pozdrawiam

P.S.

W DataSet mam na razie jedną tabele więc pratycznie całym :wink: