Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fabricio MF

Dispose fecha a conexão ativa?

Recommended Posts

Salve galera!

 

Bom, voltei a desenvolver em .Net após algum tempo e desenvolvo especificamente para WEB mais conhecido como ASP.Net.

 

Criei uma name espace com funções comuns de banco de dados e preenchimento de datareaders e outros. Nessa namespace tenho algumas das funções - Conectar(que conecta dããh rs), ExecutaReader (que preenche um data reader), Executar comando(Que uso apenas pra inserção, quando não é preciso retornar dados) e claro Desconectar(pra finalizar meu uso ao banco de dados)

 

Bom, nesta namespace uso uma variavel privada para toda namespace que se chama ConexaoBD e é to tipo MySqlConnection pois estou trabalhando com MySQL.

 

O meu problema é o seguinte:

 

1 - Primeiramente conecto ao BD //Até ai OK

2 - Executo algum comando ou mesmo preencho um datareader //Até ai OK

3 - Faço uso novamente da conexão para preencher mais um datareader //Ai não funciona

 

Deu pra entender?

 

Resumindo, quando uso a conexão pela primeira vez ele funciona normalmente, mas quando vou utilizar mais vezes sem reabrir o framework me retorna um erro dizendo que a conexão foi fechada, sendo que só fecho ao terminar de usar, é como se no MySqlComand ou MySqlDataReader ao fazer o Dispose ele também finaliza a conexão.

 

Bom, eu trabalho com VB.Net mas também aceito sugestões em C#, estou trabalhando com MySQL, .Net Framework 4, VS 2010 Ultimate, e o siclo de minhas páginas é: Carrega -> Abro conexão -> utilizo o BD -> fecho a conexão -> descarrega a página

 

Bom galero acho que fui bem claro, mas se for preciso explico novamente.

Aguardo e agradeço desde já a ajuda :natallaugh:

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá galera estou eu aqui novamente.

 

Bom, felizmente consegui a resposta para o meu problema.

 

O MySQL não tem um recurso que existe no SQLServer que o MARS, que em um inglês bem claro é Multiple Active Result Sets, que quando adicionado no ConnectionString desta forma MultipleActiveResultSets=True abilita a acesso multiplo a conexão.

 

Então como resolver?

 

Existe 2 maneiras:

 

1 - Cria-se uma conexão para cada vez que for usar, sendo assim abrindo e fechando conexões oque eu evito a todo custo

 

2 - Você cria uma conexão, utiliza esta conexão através de DataReader por exemplo (Pode ser qualquer um outro), fecha o Datareader e só depois de fechar você utiliza outro DataReader, ou seja, é igual a um banheiro, só um usa de cada vez.

 

Bom, não tive a resposta pelo forum, mas de qualquer forma agradeço pois das outras vezes que precisei sempre me ajudaram, e além do mais, fica ai a dica pra quem tiver o mesmo problema.

 

Peço desculpas ao moderador por postar a pergunta e eu mesmo responde-la kk, mas por isso vim postar a solução.

 

Nada a Acrescentar, bons códigos para todos :yes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.