FECHAR CONEXAO.
                    Bom dia pessoal,
Estou iniciando os meus primeiros passos no .net e me deparei com um problema ao tentar criar uma função para conectar no banco de dados, não estou conseguindo fechar a conexão.
Public Function my_rec(ByVal sql As String) As MySqlDataReader
Dim cnn As MySqlConnection
Dim cmd As MySqlCommand
Dim rs As MySqlDataReader
cnn = New MySqlConnection([Ô]server=[Ô] & Processador.server & [Ô];user id=[Ô] & Processador.user & [Ô];password=[Ô] & Processador.sen & [Ô];database=[Ô] & Processador.database)
cnn.Open()
cmd = New MySqlCommand(sql, cnn)
rs = cmd.ExecuteReader()
rs.Read()
Return rs
        
rs.Close()
cnn.Close()
End Function
Após o return ele não processa as demais informações.
Obrigado
            Estou iniciando os meus primeiros passos no .net e me deparei com um problema ao tentar criar uma função para conectar no banco de dados, não estou conseguindo fechar a conexão.
Public Function my_rec(ByVal sql As String) As MySqlDataReader
Dim cnn As MySqlConnection
Dim cmd As MySqlCommand
Dim rs As MySqlDataReader
cnn = New MySqlConnection([Ô]server=[Ô] & Processador.server & [Ô];user id=[Ô] & Processador.user & [Ô];password=[Ô] & Processador.sen & [Ô];database=[Ô] & Processador.database)
cnn.Open()
cmd = New MySqlCommand(sql, cnn)
rs = cmd.ExecuteReader()
rs.Read()
Return rs
rs.Close()
cnn.Close()
End Function
Após o return ele não processa as demais informações.
Obrigado
                    Eu faço assim em C#, apesar da linguagem é fácil você adaptar ao VB.
            public static void FecharConexao()
        {
            if ((cn.State == ConnectionState.Open) || (cn != null)) // detecta se conexão não existe, se existir fecha
            {
                try
                {
                    cn.Close();
                    cn.Dispose();
                }
                catch (SqlException ex)
                {
                    throw;
                }
                catch (Exception ex)
                {
                    throw;
                }
            }
        }
                
                    Use blocos [Ô]using[Ô] que não terá problemas:
            
Using cn As New MySqlConnection([Ô]minha string[Ô])
	Using cmd As New MySqlCommand([Ô]comando sql[Ô], cn)
             [ô]seu código
	End Using
End Using
                
                    Olá Kerplunk,
Fiz usando os blocos, porem ele não apresenta erro mas também, não retorna o datareader.
                
            Fiz usando os blocos, porem ele não apresenta erro mas também, não retorna o datareader.
                    Você precisa mudar a estrutura da sua função. Cria uma function AbrirConexão e outra FecharConexão. então você abre a conexão, faz uma variedade de operações com o banco de dados e fecha a conexão. Da forma que está, sua função só terá uma utilidade.
Veja o projeto que postei neste tópico
            Veja o projeto que postei neste tópico
                            Faça seu login para responder