Array
(
)

Multiplas conexoes

Regis
   - 17 mai 2012

Olá Galera
Criei essa classe com ajuda de amigos aqui do fórum e está funcionando tudo ok ate aqui. Porem-me Corrigan se eu estiver errado.
Ao meu entender eu deveria ter uma classe separada para a conexão e essa classe deveria verificar-se já existe um conexão em aberto evitando assim múltiplas conexões.
Seria esse o caminho ou nos webform eu fecho a conexão após trazer o resultado ?
public class modelo
{

private string _Conexao ;
private SqlDataSource _Sql;

public modelo()
{
_Conexao = Data Source=meubanco.sytes.net;Initial Catalog=dbjava;Persist Security Info=True;User ID=UserNet;Password=minhaSenha;
_Sql = new SqlDataSource();
_Sql.ConnectionString = _Conexao;

}

public DataTable Selecionar(string sql)
{
SqlConnection conexao = new SqlConnection(_Conexao);
SqlCommand comando = conexao.CreateCommand();
comando.CommandText = sql;
SqlDataAdapter adaptador = new SqlDataAdapter(comando);
DataTable tabela = new DataTable();
conexao.Open();
adaptador.Fill(tabela);
conexao.Close();
return tabela;
}

Joel Rodrigues
   - 17 mai 2012

Cara, uma opção é você ter apenas um objeto SqlConnection, mas em geral, eu acredito que o melhor é manter a conexão fechada para não consumir recursos do servidor.

Uma forma de fazer seria assim:
#Código

public class MinhaClasse
{
	SqlConnection conexao;
	SqlCommand comando;
	SqlDataAdapter adaptador;

	public MinhaClasse()
	{
		SqlConnection conexao = new SqlConnection(StringConexao)	
		comando = conexao.CreateCommand();
		adaptador = new SqlDataAdapter(comando);
	}

	public DataTable Selecionar(string sql)
	{
		try
		{
			comando.CommandText = sql;		 
			DataTable tabela = new DataTable();
			if(conexao.State == ConectionState.Closed)
				conexao.Open();
			adaptador.Fill(tabela);
			return tabela;
		}
		finally
		{
			conexao.Close();
		}
	}

}


Desconsidere qualquer erro de sintaxe, não testei esse código, fiz no notepad agora.

0
|
0

Regis
   - 17 mai 2012

Valeu Joel obrigado pela dica

0
|
0