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?
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?
sorry, ale gdzie Ty widzisz kreatora od DataAdapter? :)
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?
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
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ć
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.
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>
Zarowno definicja klasy jak i przestrzen nazw musi byc identyczna z definicja jaka jest z generatora ...