Avatar billede jensen2005 Nybegynder
08. november 2011 - 18:22 Der er 5 kommentarer og
1 løsning

Try catch og datareader

Hej Eksperter

Et hurtigt spørgsmål angående try/catch:

I en catch - Er det nok at lukke connection(sqlcon.Close();) eller skal datareader også lukkes??

Venlig hilsen
Jensen2005
Avatar billede arne_v Ekspert
08. november 2011 - 18:33 #1
Jeg mener ikke at docs garanterer at det er nok at lukke connection.

Man kan have en tro paa at for de fleste databaser vedkommende er det nok at lukke connection.

Men god kode boer lukke begge.

Jeg vil ioevrigt mene at i de fleste tilfaelde er 2 x using bedre end 2 x close!!
Avatar billede arne_v Ekspert
08. november 2011 - 18:34 #2
Eks.:

                using(SqlConnection con = new SqlConnection(constr))
                {
                    con.Open();
                    using(SqlCommand cmd = new SqlCommand(sqlstr, con))
                    {
                        using(SqlDataReader rdr = cmd.ExecuteReader())
                        {
                            while(rdr.Read())
                            {
                                // whatever
                            }
                        }
                    }
                }
Avatar billede jensen2005 Nybegynder
08. november 2011 - 19:24 #3
Hej

Tak for hjælpen.. Lig et svar :)

Vh Jensen2005
Avatar billede jensen2005 Nybegynder
08. november 2011 - 19:35 #4
Lige et spørgsmål til dit eksempel som jeg har brugt.

Hvordan vil du flette try/catch ind?
Avatar billede arne_v Ekspert
08. november 2011 - 19:46 #5
svar
Avatar billede arne_v Ekspert
08. november 2011 - 19:48 #6
Du kan putte try catch hvor du har lyst til og bruge catch blokken til at logge fejl etc..

Men med de 3 x using behoever du ikke close connection/command/reader i din catch - det sker automatisk uanset om der sker en exception eller ej.
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
Kurser inden for grundlæggende programmering

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