SID_SILVA 0 Denunciar post Postado Setembro 25, 2008 Boa Tarde Amigos As vezes eu declaro um Data Reader. Dim dr As SqlDataReader Depois , o utilizo: . . . dr = cmd.ExecuteReader() dr.Read() If dr.HasRows Then Session("Nome_Usuario") = dr("User_Nome") Session("User_ID") = dr("User_ID") Else LblMsg.Visible = True LblMsg.Text = "Usuário ou Senha Incorreta!" End If Catch ex As Exception LblMsg.Visible = True LblMsg.Text = ex.Message dr.Close() cn.Close() End Try Ate ai tudo bem, porem na linha do "dr.Close() ", o "dr", aparece sublinhnado, informando que existe algum problema, normalmente quando nao foi definido anteriormente que que pudesse ser utilizado. Quando executo a opcao Build para verificar os erros me e informada a seguinte mensagem abaixo: "Warning 4 Variable 'dr' is used before it has been assigned a value. A null reference exception could result at runtime. C:\TimeSheet\Login.aspx.vb 166 13 C:\TimeSheet\". Poderiam me dizer porque isso acontece, sendo que eu consigo executar a pagina sem problemas. Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Setembro 26, 2008 Isto não é um erro, é apenas um Warning, é algo que pode gerar erro em tempo de execução. O que acontece é que essa parte do código: dr.Close() cn.Close() Esta dentro do seu bloco Catch. Resumindo só vai dar um close no seu DataReader e na sua conexão quando der erro?? Esta parte do código deveria estar em um bloco finally e não no Catch. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites