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