Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C# wczytywanie dazych z bazy SQL do DataGridView

wylly_rsl 16 Cze 2011 00:20 4901 4
  • #1 16 Cze 2011 00:20
    wylly_rsl
    Poziom 8  

    Witam.
    Chciałbym prosić o pomoc w sprawie wczytania danych z bazy do DataGridView.
    Szukałem już informacji na ten temat i można powiedzieć że znalazłem i niby ma działać ale mi dalej nie działa i naprawdę juz nie mam pojęcia jak to zrobić. Mam oto taki kod.

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    Podobno niektórym to działa.

    Mam dane w bazie jednak po wywołaniu tej metody dataGridView jest puste.
    Proszę niech mi ktoś wyjaśni jak wczytać dane z bazy do dataGridView.

    Środowisko to Microsoft Visual C# 2005 express edition.
    Z góry dziekuje za pomoc.

    0 4
  • #2 16 Cze 2011 09:36
    marcinj12
    Poziom 40  

    Witam,
    DataReader używaj raczej wtedy, kiedy musisz wybrać tylko niektóre kolumny z zapytania, lub kiedy chcesz przeprowadzić dodatkowe operacje na danych przed ich wyświetleniem.
    Jeżeli dane które chcesz pobrać chcesz wyświetlić w całości, sugeruję użyć DataAdapter i jego metodę Fill. Zdaje się jest to najszybsza metoda i potrafi sama stworzyć schemat tabeli.

    Poniżej przykład, jak by to mogło wyglądać w Twoim wypadku:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    0
  • #3 16 Cze 2011 20:02
    wylly_rsl
    Poziom 8  

    Dziękuje bardzo. Pomogło.

    Jeszcze miałbym jedno pytanko.

    Powiedzmy że mam już dataGridWiev wypełniony np dziesięcioma rekordami.
    Zaznaczam myszką np 5 rekord i jak teraz najlepiej pobrać dane z tego 5 rekordu np do ewentualnej edycji czy usunięcia.

    0
  • #4 17 Cze 2011 06:34
    wiesniak
    Poziom 31  

    Grid ma zdarzenie SelectionChanged do którego musisz się podpiąć. Tam możesz sprawdzić właściwość SelectedRows grida, która będzie posiadała informację o zaznaczonych wierszach (jest też SelectedCells). W ten sposób możesz dostać się do poszczególnych komórek i wartości w nich przechowywanych.

    0
  • #5 17 Cze 2011 08:49
    marcinj12
    Poziom 40  

    Oprócz zdarzenia SelectionChanged o którym pisze wiesniak, możesz powiązać kontrolki przez DataBinding (pod warunkiem że na raz będziesz zaznaczał tylko jeden wiersz). Tutaj jest to dobrze opisane.

    Aby np. podłączyć textboxa do pola o nazwie "nazwisko" w tabeli dtTmp, i dodatkowo nie propagować zmian w textboxie na tabelę ("tylko do odczytu") musisz dać coś takiego w momencie, kiedy tabela będzie już miała schemat:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    Jeżeli tabelę masz już zdefiniowaną np. w obiekcie DataSet, wtedy jeszcze łatwiej, bo możesz to "wyklikać" w Designerze we właściwości kontrolki (DataBindings) / Advanced...

    0