🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.vbasic
2 messages
2 total messages Started by JacekD Sun, 15 May 2011 19:10
problem z zapisem DataSet-u w bazie
#104832
Author: JacekD
Date: Sun, 15 May 2011 19:10
46 lines
2849 bytes
Witajcie,

Zaznaczam, że googlałem i szukałem na MSDN-ie, ale jakoś nie natrafiłem na
rozwiązanie mojego problemu. A więc opisuję, o co chodzi:
Mam aplikację, która sprawdza plik tekstowy i wyszukuje w nim błędy. Struktura
każdego rekordu jest identyczna. Stworzyłem klasę clLinia, której metody
szatkują linie z pliku na poszczególne pola, a następnie badają zawartość pól wg
jakiś tam reguł poprawności. Jeśli w jakimś polu wykryję błąd, to tworzę nową
instancję klasy clBlad, która ma za zadanie zapisać w bazie danych rekord z
parametrami znalezionego błędu.
Robię to następującym kodem:
przy starcie aplikacji tworzę dla zdefiniowanego wcześniej połączenia DataSet
(dsZIFC) i wypełniam go zawartością tablicy rejestr_bledow:
 If myConnection.State <> ConnectionState.Open Then
                myConnection.Open()
                oledbAdapter = New OleDbDataAdapter(strSQL, myConnection)
                oledbAdapter.Fill(dsZIFC, "rejestr_bledow")
                oledbAdapter.Dispose()
 End If

W klasie clBlad mam metodę add_blad, która wygląda mniej więcej tak:
			
			Dim tbRejestrBledow As DataTable
            Dim rwRekord As DataRow

            tbRejestrBledow = dsZIFC.Tables("rejestr_bledow")

            rwRekord = tbRejestrBledow.NewRow
            rwRekord("id_importu") = _id_importu
            rwRekord("id_wiersza") = _id_wiersza
            rwRekord("id_bledu") = _id_bledu
            rwRekord("id_pola") = _id_pola
            rwRekord("opis_bledu") = _opis
            rwRekord("wartosc") = _wartosc
            tbRejestrBledow.Rows.Add(rwRekord)
            dsZIFC.AcceptChanges()
			
I mimo użycia metody AcceptChanges dla DataSet-u, nie mam zapisów w bazie
danych. Czy ktoś z szanownych kolegów jest mi w stanie łopatologicznie
powiedzieć, co robię źle? 

Z góry dzięki
Jacek

-- 
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Re: problem z zapisem DataSet-u w bazie
#104833
Author: ktos
Date: Mon, 16 May 2011 11:33
32 lines
2086 bytes
W dniu 2011-05-15 21:10, JacekD pisze:
> Witajcie,
>
> Zaznaczam, że googlałem i szukałem na MSDN-ie, ale jakoś nie natrafiłem na
> rozwiązanie mojego problemu. A więc opisuję, o co chodzi:

>              rwRekord("wartosc") = _wartosc
>              tbRejestrBledow.Rows.Add(rwRekord)
>              dsZIFC.AcceptChanges()
> 			
> I mimo użycia metody AcceptChanges dla DataSet-u, nie mam zapisów w bazie
> danych. Czy ktoś z szanownych kolegów jest mi w stanie łopatologicznie
> powiedzieć, co robię źle?
>
> Z góry dzięki
> Jacek
>


wpisujesz w google: dataset acceptchanges
i drugi link:
http://social.msdn.microsoft.com/Forums/en/adodotnetdataset/thread/71a3d1e1-2588-499d-b603-c5c643f6fe50

wyjaśnia twój problem:

AcceptChanges only updates your rows in the (in memory) dataset, that is 
- marks them as "not needed for actual database update". If you want to 
update your rows to the database, call your tableadapter's Update 
method................

A lot of people use AcceptChanges and wonder why their database was not 
updated. you should not call accept changes ....
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads