Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Instrukcja SQL w DataSet
busio
busio




Typ: neutral
Postów: 98
Zarejestrowany: Sep 2002
Instrukcja SQL w DataSet

Witam

Posiadam wypełnony DataSet z tabela 'Uzytkownicy'.
Liczy ona 20 kolumn. Do Grida chcę wpisać tylko cztery- nazwisko, imie, stanowisko i login.
Jak przy uzyciu instrukcji SQL (select .... from ...) pobrac dane z DataSeta - ALE BEZ PONOWNEGO ŁĄCZENIA SIE Z BAZA DANYCH! i utworzyc np DataView z czterema kolumnami? Ukrycie kolumn w Gridzie jest rozwiązaniem bardziej niz połowicznym gdyz co będzie jeśli do grida koniecznie będzie wpisanie złączenia z kilku tabel DataSeta?
Bardzo proszę chociaż o jakąś wskazówkę...

Pozdrawiam busio

11-03-2005 23:36
Pokaż profil busio  Wyślij email do busio   Odwiedź stronę busio  
JoFerrari




Typ: neutral
Postów: 75
Zarejestrowany: Apr 2003

Nie można wykonac instrukcji SQL na danych z dataseta(poniewaz sam dataset jest zestawem danych prezentujacych zapytanie. Wg mnie masz takie mozliwosci:
1. Ukryc kolumny(ja bym chyba tak zrobil ale nie znam twojej aplikacji)
2. Wlozyc do dataseta jeszcze raz ta samą tabelke(select tylko 4 kolumny ktore potrzebujesz) i zamapowac ją z inna nazwą
3. Mozesz kontrolowac programowo ile kolumn ma tabelka w datasecie tzn.: mozesz w poewnym momencie uaktualnic baze danych(Update) i usunac niepotrzebne kolumny Dataset.Table("Nazwa".Columns(nazwa lub index).remove  . Nie wiem czy nie musisz po tym odswiezyc w jakis sposob datagrida. Jak bedzieszznowu potrzebowal tych kolumn to Update i dodaj spowrotem kolumienki.

12-05-2005 09:12
Pokaż profil JoFerrari  Wyślij email do JoFerrari   
busio
busio




Typ: neutral
Postów: 98
Zarejestrowany: Sep 2002

Witam

Dzięki za informacje. Jeśli możesz jeszcze to powiedz mi czemu tak się dzieje:

Na zakładkach są gridy - każdy z oddzienym datasetem. Zmiana zakładki odświeża dataseta.
Zmieniam zakładki i odbywa się to płynnie, a sporadycznie zdarza się że coś sie zacina (winny nie jest serwer) i czekam na pobranie danych 3 sekundy.
Wygląda to fatalnie...

Pozdrawiam busio

12-05-2005 11:00
Pokaż profil busio  Wyślij email do busio   Odwiedź stronę busio  
JoFerrari




Typ: neutral
Postów: 75
Zarejestrowany: Apr 2003

Moge tylko zgadywac nie widząc twojego kodu.

Jeśli są to dość pokaźne datasety(duzo dużych ;-)tabelek ) z kontrolą constraintów i do odswiezenia bazy uzywasz instrukcji DataAdapter.Update to może to być po prostu taka predkosc dzialania.

Dlugo nie siedze w necie.. ale póki co tak rozwiązywalem swoje programy żeby korzystać z jednego dataseta. Wydaje mi sie dosc poteżną strukturą która zjada dużo zasobów.

Mam taki jeden programik moze podobny do twojego.
Z lewej TreeView z prawej datagrid. Zaleznie co kliknie sie w treeviev otwierają sie na przemian w tym jednym datagridze 3 tabele.(kompletnie inna struktura i kazda z nich ma pod soba tabelke w relacji)
Działa to według mnie w mgnieniu oka wiec na pewno mozesz u siebie tez to lepiej rozwiązać. Ja zapisuje zmiany do bazy w tym programie po zejsciu z linii datagrida. (czyli update'uje po jednej lini+relacje)

13-05-2005 08:29
Pokaż profil JoFerrari  Wyślij email do JoFerrari   
musman
www.codec.pl



Typ: neutral
Postów: 202
Zarejestrowany: Mar 2003

witam

masz mozliwosc kontrolowania tego co chcesz wyswietlic za pomoca DataGridTableStyle ... DataGridColumnStyle w ktorych okreslasz MappingName czyli powiazanie z kolumna z dataset(jesli stosujesz zwykle zapytanie SQL mozna powiedziec ze jest to nazwa kolumny z bazy) - nie musisz nic ukrywac w gridzie ... okreslasz tez HeaderText,Width i NullText co jest bardzo poreczne ... aby nie wykonywac ponownych zapytan do bazy mozesz szukac danych w DataView przez Find lub tez filtrowac przy pomocy RowFilter gdzie podajesz stringa okreslajacego np "naz_s LIKE 'vb4all%'" (widac tu skladnie SQL'owa) i oczywiscie sortowac przy pomocy Sort="naz_s asc" gdzie jak widzisz tez podajesz stringa

temat jest bardzo obszerny i mozna naprawde sporo zrobic i tu polecam oczywiscie www.msdn.microsoft.com gdzie znajdziesz naprawde ladnie opisane zagadnienia z przykladami

pozdrawiam

13-05-2005 20:51
Pokaż profil musman  Wyślij email do musman   Odwiedź stronę musman       13495362    3559336
JoFerrari




Typ: neutral
Postów: 75
Zarejestrowany: Apr 2003

O ile mi wiadomo .find .rowfilter slużą oczywiście do filtrowania... ale filtruje sie po kolumnie a nie kolumny. Moze mam zbyt mała wiedzę, ale jest to kolejny z prostych tematów który w .net jest troche utrudniony

15-05-2005 10:43
Pokaż profil JoFerrari  Wyślij email do JoFerrari   
musman
www.codec.pl



Typ: neutral
Postów: 202
Zarejestrowany: Mar 2003

no i tez tak napisalem .... a na poczatku napisalem ze DataGridTableStyle ... DataGridColumnStyle i MappingName w nich odpowiada za wyswietlane kolumn

pozdrawiam

15-05-2005 11:21
Pokaż profil musman  Wyślij email do musman   Odwiedź stronę musman       13495362    3559336
Wszystkich odpowiedzi: 6 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1