[ esnaf @ 31.07.2003. 15:00 ] @
Pravim aplikaciju u VS-C#.NET-u koja se kaci na SQL server.
Kada pukne veza izmedju aplikacije i baze hocu da se veza ponovo automatski
uspostavi pomocu StateChange event-a.
Za vezu sa bazom koristim SQlConnection objekat.

veza.StateChange+=new StateChangeEventHandler(Veza_state);
//U konstruktoru glavne forme

private void Veza_state (object sender,StateChangeEventArgs e)
{
if(e.CurrentState==ConnectionState.Closed)
veza.Open();
}
//ovo zadnje se izgleda nikad ne izvrsi a i proverio sam u SqlProfiler-u
Da li mozda treba da koristim OleDbConnection ?
[ degojs @ 01.08.2003. 20:02 ] @
Nisam siguran da možeš tako da dobiješ obaveštenje ako se konekcija prekine usled nečeg van tvog koda. Tako ćeš recimo moći da budeš obavešten ako u kodu sam zatvoriš konekciju, ali ne i ako recimo ugasiš SQL Server dok je konekcija otvorena.

Jednostvno, kada vršiš pristup bazi (čitanje, pisanje..) treba da imaš ugrađen mehanizam za obradu izuzetaka. Pa ako se izuzetak desi, TADA vidi sam šta ti je činiti.

Usput, AKO koristiš DataSet u kombinaciji sa DataAdapter klasom onda ti to što si naumio i nema mnogo smisla pošto DataAdapter otvori konekciju, izvrši šta treba i zatvori je, sve to sam.
[ esnaf @ 02.08.2003. 12:05 ] @
Hvala degojs!!
Sto se tice izuzetaka njih sam obradio (SqlException) i greske hvatam na osnovu
definisanih poruka u sysmessages tabeli,(RAISERROR(60000,10,1) itd..
Sto se tice konekcije ona je uvek otvorena sve dok ne ugasim program(zahteva cesto citanje i upisivanje).

[ degojs @ 02.08.2003. 16:16 ] @
Samo da razjasnimo: nisam 100% siguran. Malo sam pogledao dokumentaciju i probao pa mi se čini da je tako. Dakle, ne tvrdim :)
[ Deep|Blue @ 04.08.2003. 12:04 ] @
Citat:
degojs:


Usput, AKO koristiš DataSet u kombinaciji sa DataAdapter klasom onda ti to što si naumio i nema mnogo smisla pošto DataAdapter otvori konekciju, izvrši šta treba i zatvori je, sve to sam.

zar dataadapter zatvara konekciju?
ado.net?
[ degojs @ 09.08.2003. 14:28 ] @
Ako je konekcija pre pozivanja npr. Fill metode bila zatvorena, DataAdapter će je otvoriti, preuzeti podatke i zatvoriti. Ali ako je bila otvorena pre, onda će ostati otvorena i posle.
[ Zvonimir @ 02.09.2003. 16:00 ] @
Citat:
esnaf:
Hvala degojs!!
Sto se tice izuzetaka njih sam obradio (SqlException) i greske hvatam na osnovu
definisanih poruka u sysmessages tabeli,(RAISERROR(60000,10,1) itd..
Sto se tice konekcije ona je uvek otvorena sve dok ne ugasim program(zahteva cesto citanje i upisivanje).

Posto ADO.NET po defaultu interno radi pooling konekcija (to znaci da kada pozoves conn.Close() konekcija se ne zatvara odmah, nego ceka izvesno vreme da li ce biti opet pozvana), nema potrebe da je drzis otvorenu. Za svaku akciju pozovi Open i Close.

http://msdn.microsoft.com/libr...orsqlservernetdataprovider.asp

Pozdrav