Avatar billede clausjul Nybegynder
30. oktober 2003 - 09:51 Der er 12 kommentarer og
1 løsning

Page_Load og "Page_PostRender"

Jeg ønsker kun at bruge en MySqlConnection i en proces. For mange åbne connections giver overflow i connection poolen. Derfor skal man huske at lukke connectionen.

Men jeg vil bruge MySqlConnection i en "global" variabel i klassen. Det virker fint, men problemet er, at jeg ønsker at lukke den globale connection til ALLERSIDST i processen.

Page_Load bliver hentet først, men hvilken event bliver udført allersidst?

Der er noget der hedder Page_PreRender, men ingen Page_PostRender?
Avatar billede odegaard Nybegynder
30. oktober 2003 - 10:02 #1
Page_Unload
Avatar billede odegaard Nybegynder
30. oktober 2003 - 10:04 #2
Avatar billede odegaard Nybegynder
30. oktober 2003 - 10:05 #3
The final sign of life of a page is the Unload event that arrives just before the page object is dismissed. In this event you should release any critical resource you might have (for example, files, graphical objects, database connections).
Avatar billede clausjul Nybegynder
30. oktober 2003 - 10:37 #4
Tak - det virker. Smid lige et svar, så får du 30 pinde ;-)
Avatar billede clausjul Nybegynder
30. oktober 2003 - 10:44 #5
-> odegaard
Det er vel en fordel at køre med bare en connection object i en proces, altså åbne ved en global erklæring og så lukke ved unload? Så kommer der KUN en åbn/luk connection pr. sidevisning i asp.net.
Avatar billede odegaard Nybegynder
30. oktober 2003 - 10:59 #6
Jeg skal ikke kunne sige hvad der er en fordel. Der er ting der taler for og imod.
Men tænk over denne: Hvis der sker en fejl på en side, får du aldrig lukket forbindelsen, da du ikke kan lave catch/try på tværs af disse events.
Typisk laver jeg kun ét eller to kald til databasen, og så lukker jeg med det samme igen, inden jeg fortsætter med at processere data. Hvor ofte skal du hente utallige gange fra en database, for at præsentere lidt indhold på en side?
Avatar billede clausjul Nybegynder
30. oktober 2003 - 11:03 #7
Problemet her er, at jeg laver en repeater, som i hver itemtemplate laver et kald til database for fx. at tjekke om linket skal disables eller ej. Denne metode bruger 100 åbn/luk, hvis der var 100 poster. Hvis jeg gør connection global, så kun 1 åbn/luk og ikke mere. Ulempen som du nævner ved fejl - ja, det er rigtigt, men hvis man laver en try og catch og i catch disconnecter databasen ved fejl - så burde det være muligt?
Avatar billede odegaard Nybegynder
30. oktober 2003 - 11:08 #8
Øhm... kunne du ikke lave dit første kald således, at du ved dette for hver række? Det lyder som en klassisk join-funktion.
Avatar billede odegaard Nybegynder
30. oktober 2003 - 11:09 #9
hvis du catcher og lukker, så skal du senere sørge for at tjekke om forbindelsen er åben. Ellers vel den fx. fejle når du lukker den i Unload.
Avatar billede clausjul Nybegynder
30. oktober 2003 - 11:10 #10
Så skal jeg bare i unload tjekke:

if (myConn.Open) {
    DBTools.CloseConnection(myConn)
}
Avatar billede odegaard Nybegynder
30. oktober 2003 - 11:13 #11
ja ja men det bliver efterhånden mere og mere en lappeløsning
Avatar billede odegaard Nybegynder
30. oktober 2003 - 11:14 #12
...den rigtige løsning ville at får et lidt bedre datasæt retur fra din database i første omgang, så du slipper for alle de opslag.
Avatar billede clausjul Nybegynder
30. oktober 2003 - 11:15 #13
Det har du nok ret i. Men jeg ser hvordan det går. Tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester