DataAdapter event OnRowUpdate

0

Gdy utworzę DataAdapter przy użyciu kreatora nie mogę dostać się do eventów takich jak OnRowUpdated czy OnRowUpdating.

Można to jakoś ustawić we właściwościach?

0

sorry, ale gdzie Ty widzisz kreatora od DataAdapter? :)

0

Chodzi mi o DataSet.xsd w tym pliku klikasz sobie myszką i kod generuje się sam, nawet linijki nie piszesz. Więc czemu nie nazwać tego kreatorem?

0

poniewaz to tak, jakbys nazywal oknoprogramu (window) ramką albo obwódką.

kreator to cos, co kiedys nazywano wizard'em, patrz to cos co Ci wyskakuje jak wyklikasz nowy DataSet z toolboxa. to jest kreator.

to co otwiera się w visualu po otworzeniu juz wygenerowanego pliku .xsd to DESIGNER, po polskiemu, projektant, edytor albo po prostu "dizajner"..

do tematu - nie dostaniesz sie do tego przez wlasciwosci, poniewaz jedyne wlasciwosci jakie mozesz w designerze zobaczyc, to wlasciwosci dataseta, tabeli albo relacji.

dataadaptery sa widoczne jedynie w kodzie i w kodzie mozesz sobie jak najbardziej wpiac sie w ich eventy. zrob to zaraz po stworzeniu instancji dataset'a i tyle.. jesli masz cala reszte wyklikana, podpiecie sie do nich umiesc tuz po odpaleniu sie InitializeComponent() w konstruktorze formy

0

Nie wiem czy Cie dobrze zrozumiałem ale po 1:

do tematu - nie dostaniesz sie do tego przez wlasciwosci, poniewaz jedyne wlasciwosci jakie mozesz w designerze zobaczyc, to wlasciwosci dataseta, tabeli albo relacji.

Oczywiście, że można zmieniać właściwości DataAdaptera, chociażby defniniowanie ConnectionString, czy komend SQL dla niego.
A po 2:

dataadaptery sa widoczne jedynie w kodzie i w kodzie mozesz sobie jak najbardziej wpiac sie w ich eventy. zrob to zaraz po stworzeniu instancji dataset'a i tyle.. jesli masz cala reszte wyklikana, podpiecie sie do nich umiesc tuz po odpaleniu sie InitializeComponent() w konstruktorze formy

Czyzby chodziło o coś takiego:

        public Form1()
        {
            InitializeComponent();
            dataAdapter1.OnRowUpdated +=new RowUpdatedEventHandler(dataAdapter1_RowUpdated);
        }

Jeżeli tak to właśnie na tym mój problem polega, że nie widzę tych eventów, dlatego nie mogę ich obsłużyć

0

ale czy ten dataadapter to dataadapter czy taki wygenerowany z automatu. Wtedy jest on partial i dziedziczy z Component. Dopiero wewnatrz ma DataAdapter jako private.

Na szczescie klasa jest generowana jako partial, wiec wystarczy dorobic swoja i udostenic na zwenatrz wlasciwosci dataataptera (np. w przypadku MySQL'owego connectora jest to _adapter). Nalezy tak robic a nie zmieniac kod bo kod jest autogenerowany i moze zostac zamazany.

0

No wlasnie jest on wygenerowany z automatu.
Próbowałem zrobić jako klasę partial ale nie mogę zrobić:

public TableAdapter()
        {
            _adapter.OnRowUpdated += new EventHandler(TableAdapter_OnRowUpdated);
            _adapter.OnRowUpdating += new EventHandler(TableAdapter_OnRowUpdating);
        }

Tylko że nie widzi tego zmiennej _adapter ;/. Jeśli tworzę to jako oddzielny plik to widzi to jako inną klasę. A w sumie nie powinno tak być.</cpp>

0

Zarowno definicja klasy jak i przestrzen nazw musi byc identyczna z definicja jaka jest z generatora ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1