DataSet i update bazy danych.

0

Mam metode która łączy się z baza danych, wrzuca dane do DataSet i prezentuje dane za pomoca kontrolki dataGridView

void Load()
{
           OleDbConnection Polacz = new OleDbConnection(conString);
           Polacz.Open();

           string Zapytanie = "SELECT * FROM Ksiazki";
           
           OleDbDataAdapter dp = new OleDbDataAdapter(Zapytanie, conString);
           
           DataSet dataSet = new DataSet();
           dp.Fill(dataSet, "Ksiazki");
           
           dataGridView1.AutoGenerateColumns = true;
           dataGridView1.DataSource = dataSet;
           dataGridView1.DataMember = "Ksiazki";
           
           Polacz.Close();
}

W teorii to co zmienię w dataGridView zmieni sie również w DataSet tak wiec chce teraz zrobić pod "przyciskiem" po którego naciśnięciu zapiszą sie zmiany z DataSet w bazie danych. W teori robi sie to poleceniem:

Polacz.Open();
OleDbCommandBuilder cb = new OleDbCommandBuilder(dp);
dp.Update(dataSet, "Ksiazki");
Polacz.Close();

Ale ja wrzucę to do innej metody to niestety tamte obiekty (dp, Polacz, dataSet) nie są dostepne.
Prosze o podpowiedz jak rowiązać ten problem?? Moze ktoś ma gotowy projekt podobnej aplikacji.

Serdecznei pozdrawiam

0

zadeklaruj je jako zmienne globalne dla klasy (może statyczne)

0
Polacz.Open();

Polacz.Close();

Niepotrzebne Ci to - przecież jest model odłączony.

0

Wiedziałem ze rozwiązanie będzie proste a nie skojarzyłem ze przecież OleDbDataAdapter i DataSet to zwykle zmienne z tym ze referencyjne i mozna je również zadeklarowac jako publiczne ;)
Rzeczywiście metody Open() i Close() sa zbedne bo działa, wiec gdzies na stronie Microsoftu jest blad.

Dzieki za pomoc

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