Witam.
Udało mi się napisać dobrze działająca aplikację c# która łączy się z zewnętrzną bazą danych. Jednak zastanawia mnie jedna rzecz.
Jeśli mam 4 buttony do każdej operacji bazodanowej (Dodaj, usuń, edytuj, rzutój wiersze/tabele/kolumny) to za każdym razem w buttonie odwołuję się do obiektu conn klasy npgsqlconnection i tworzę łańcuch połączeniowy
Npgsqlconnection conn = new Npgsqlconnection(polacz);
gdzie
polacz
jest zmienną typu string która zawiera informacje o logowaniu się do bazy.
Z bazą łączę się i rozłączam za każdym razem, gdy wywołam zdarzenie za pomocą akcji button.
Na tej stronie http://www.microsoft.com/poland/developer/net/programowanie/dostep_do_baz.mspx#EOE
W solucji bibliotek ADO.NET wyczytałem jednak, że:
Nie ma potrzeby ciągłego otwierania i zamykania połączenia z bazą danych za każdym razem, gdy chcemy wykonać jakąś operację w bazie danych — jedno połączenie może być wykorzystywane przez wiele operacji.
Powyższe zagadnienie interesuje mnie ze względu na to, że będe mógł przy wyszukiwaniu informacji z bazy danych , odwoływać się bezpośrednio do bazy, bez konieczności używania za kazdym razem obiektów np. typu dataset .
Jednak nie mam żadnego pomysłu jak tego dokonać, aby podczas działania programu połaczenie z bazą danych trwało cały czas, niezależnie od tego w jakiej formatce siedzę. Wiem tylko tyle, że chciałbym jedno połaczenie z bazą danych wykorzstywać w kilku formach i że jedna formatka będzie miała panel logowania z której pobiorę atrybuty do parametrów połączenia z bazą danych.
Jedyne co mi na myśl przychodzi to utworzenie obiektu instancji do klasy połączenia w klasie statycznej
static class Połączenie
{
Npgsqlconnection conn = new Npgsqlconnection(polacz);
void jakasmetoda();
}
jednak nie wiem, czy dzięki temu rozwiązaniu , będe miał zachowane połączenie do bazy niezaleznie od tego, jakiej formatki będe używać.