Forum Informatyka UJ forum Strona Główna Informatyka UJ forum
Rocznik 2005 - czyli najlepsze forum w sieci
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

C# i TableAdaptery, które nie działają.

 
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Informatyka
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
exeman
Mistrz grilla



Dołączył: 03 Lut 2006
Posty: 1603
Przeczytał: 0 tematów

Skąd: znienacka

PostWysłany: Sob 2:49, 27 Gru 2008    Temat postu: C# i TableAdaptery, które nie działają.

Sprawa prosta, piszę program okienkowy korzystający z bazy danych.
Mam utworzone:
1. sqlConnection
2. dataSet
3. BindingSource i TableAdapter dla zapytania typu SELECT A JOIN B
4. dataGridView podpięty do powyższego BindingSource

Plan: Zmieniam wiersze w dataGridView i chcę zapisać dane do bazy. Podobno robi się to wywołując metodę Update na Adapterze.

Pierwsza sprawa, TableAdapter'owy Wizard nie potrafi wygenerować zapytań (i metod) UPDATE, INSERT dla zapytania zawierającego JOIN. Wyczytałem w necie, że przy złożonych zapytaniach Wizard wygeneruje tylko kod dla SELECT'a (te metody i inne bzdety).

Druga sprawa, napisałem sobie te zapytania ręcznie za pomocą DataSet Designera. W Adapterze pojawiła się nowa pozycja poniżej standardowego (Fill, GetData), a mianowicie: UpdateQuery(...)

Problem się pojawia przy próbie zapisania zmian z DataSet'u do bazy.

Robię to tak:

bajerZJoinemTableAdapter.Adapter.Update(this.mojDataSet.bajerZJoinem);

Wyskakuje wyjatek z komunikatem

Operacja Update wymaga prawidłowego elementu UpdateCommand podczas przekazywania kolekcji DataRow ze zmodyfikowanymi wierszami.

No ale przecież utworzyłem mu UpdateQuery.

Da się oczywiście wywołać ręcznie metodę bajerZJoinemTableAdapter.UpdateQuery, która jednak przyjmuje bezpośrednio parametry (kolumny), a ja chciałbym to zrobić na całym DataSet'cie, żeby wszystkie zmiany zapisały się automagicznie, jak to powinien Adapter właśnie robić.

Dla zapytań bez joina, Wizard generuje metody i zapytania dla update i insert, wtedy działa wszystko bez problemu.


Pytanie: Co robię źle? Jak podpiąć Adapter.Update do DataTable operującym na zapytaniu SELECT z joinem?

Z góry dzięki za pomoc, choć trochę wątpię w jej nadejście :p


Ostatnio zmieniony przez exeman dnia Sob 2:54, 27 Gru 2008, w całości zmieniany 3 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Informatyka Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin