e_book_c__v1

13
Diego Borges Evite dores de cabeça com C# SOLUCIONANDO PROBLEMAS DO DIA A DIA

Upload: marcos-antonio

Post on 18-Aug-2015

212 views

Category:

Documents


0 download

DESCRIPTION

mostrar algumas dicas de alguns problemas que podemos nos deparar no dia a dia e como resolver estes problemas.

TRANSCRIPT

Diego BorgesEvite dores de cabea com C#S OL UCI ONANDOP ROBL E MAS DODI AADI AEvite dores de cabea com C#SOLUCIONANDOPROBLEMASDODIAADIADiego BorgesIntroduo sobre o E-bookO intuito deste e-book, no literalmente ENSINAR a programar desde o incio. Para isso, continue acompanhando nosso contedo, que em breve haver muitas novidades de cursos bsicos e avanados.Neste e-book, a inteno mostrar algumas dicas de alguns problemas que podemos nos deparar no dia a dia e como resolver estes problemas.Dica #1: USINGUSING(){...}Diego BorgesDica #1: USING O poder do USINGA instruo USING serve para descartar - tecnicamente dar Dispose() em um objeto automaticamente.Para esta funo, pode-se utilizar o try/catch e fazer o Dispose() manualmente no finally, porm...manualmente.Com USING, o cdigo fica melhor estruturado, mais bonito e o Dispose() feito de forma automtica, no alocando memria e liberando os objetos em questo.Dica #1: USING Exemplo 1Para facilitar o entendimento, veja o exemplo abaixo, onde o objeto de conexo liberada automaticamente:using (SqlConnection conn = new SqlConnection("connString")){//seu cdigo...}Dica #1: USING Exemplo 2Neste segundo caso, usaremos o USING para liberar o leitor de arquivo e no correr o risco do arquivo ficar bloqueado.using (StreamReader sr = new StreamReader(meu_arquivo.txt")){string line = sr.ReadToEnd();Console.WriteLine(line);}Dica #1: USING - ConclusoEm ambos os casos, voc poder observar a agilidade de se usar o objeto e automaticamente liberar o mesmo. Isso pode te livrar de grande dor de cabea, com o intuito de no ficar com conexes ao banco de dados, assim como no manter arquivos em memria.Dica #2: ConnectionStateCONN.OPEN();CONN.CLOSE();Diego BorgesDica #2: ConnectionState Fechando conexesOutro grande problema que voc pode ter deixar inmeras conexes ativas ao banco de dados.Dependendo do tamanho de seu projeto, isso pode tornar seu sistema extremamente lento, alm de consumir conexes ao banco de dados.Dica #2: ConnectionState ExemploPara facilitar o entendimento, veja o exemplo abaixo, onde irei abrir a conexo, popular um DataTable, fechar a conexo e liberar o objeto:DataTable dt = new DataTable();using (SqlConnection conn = new SqlConnection(connString)){SqlCommand sql = new SqlCommand(queryString, conn);SqlDataAdapter sda = new SqlDataAdapter(sql);if (conn.State == ConnectionState.Closed) { conn.Open(); }sda.Fill(dt);if (conn.State == ConnectionState.Open) { conn.Close(); }}Dica #2: ConnectionState ConclusoPode-se observar no exemplo dado, que ns no s abrimos, usamos e fechamos a conexo, como tambm fizemos um verificao antes de abrir e fechar.O intuito de se testar se a conexo est fechada para abrir e aberta para fechar, serve para que o C# no retorne uma exceo no cdigo.Sendo assim, teremos os objetos liberados pelo USING, o IF para testar a conexo e por fim, fechamos a conexo com o banco.CONSIDERAES FINAISO intuito deste e-book foi evidenciar duas dicas primordiais para programao em C# que ir te livrar de grandes dores de cabea.Quer aprender mais sobre C# e ver mais dicas?Quero continuar vendo mais dicasDiego Borges