terça-feira, 20 de julho de 2010

Acesso a Banco de Dados

/*
* Autor: Marcos Guedes
* Fonte: http://forum.programacaobrasil.com/-t291.htm
*/

using System;
using System.Data;

public abstract class BancoDados
{
protected string strConexao = ""; // String de conexão
protected string mensagemErro = ""; // Última mensagem de erro armazenada.
protected bool conectado = false; // Status de conexão com o banco de dados
protected int quantos = 0; // Quantidade de registros filtrados no último SELECT

protected DataTable objDt;

public void setStrConexao(string strConexao)
{
/**
* Altera o valor da string de conexão
*/
this.strConexao = strConexao;
}

public bool getConectado()
{
/*
* Retorna o status de conexão com o banco de dados
*/
return this.conectado;
}

public string getMensagemErro()
{
/**
* Retorna a última mensagem de erro.
* No caso de uma operação bem sucessidade,
* o retorno é uma string vazia.
*/
return this.mensagemErro;
}

public DataTable getObjDt()
{
/**
* Retorna um DataTable contendo os registros do último select
*/
return this.objDt;
}

public int getQuantos()
{
/**
* Retorna a quantidade de do último select
*/
return this.quantos;
}
}

namespace AcessoODBC
{
using System.Data.Odbc;

public class BancoODBC : BancoDados
{
private OdbcConnection objConexao; // Objeto de conexão com o banco através do driver odbc
private OdbcCommand objComando;

public BancoODBC(){ }

public BancoODBC(string strConexao)
{
/* Sobrecarga de construtor, permitindo a opção de passar a
* string de conexão no momento em que o objeto for instanciado*/
this.strConexao = strConexao;
}

public void conectar()
{
/**
* Tenta realizar uma conexão com um Banco de Dados
*/
bool conectado;
try
{
this.objConexao = new OdbcConnection(this.strConexao);
this.objConexao.Open(); // Abre a conexão com o banco de dados
this.mensagemErro = "";

conectado = true;
}
catch(Exception oErro)
{
this.mensagemErro = oErro.Message;
conectado = false;
}
this.conectado = conectado;
}

public void desconectar()
{
/**
* Desconecta-se do banco de dados
*/
this.objConexao.Close();
this.conectado = false;
}

public bool executar(string comando)
{
/**
* Executa comandos SQL.
*/
bool sucesso;
try
{
this.objComando = new OdbcCommand(comando, this.objConexao);
this.objDt = new DataTable();
OdbcDataReader dr = this.objComando.ExecuteReader();
objDt.Load(dr);

this.quantos = dr.RecordsAffected; // Filtra a quantidade de registros afetados
this.mensagemErro = "";
sucesso = true;
}
catch (Exception oErro)
{
this.quantos = -1;
this.mensagemErro = oErro.Message;
this.objDt = null;
sucesso = false;
}
return sucesso;
}
}
}

namespace AcessoBancoOLEDB
{
using System.Data.OleDb;

public class BancoOLEDB : BancoDados
{
private OleDbConnection objConexao; // Objeto de conexão com o banco através do driver odbc
private OleDbCommand objComando;
public void conectar()
{
/**
* Tenta realizar uma conexão com um Banco de Dados
*/
bool conectado;
try
{
this.objConexao = new OleDbConnection(this.strConexao);
this.objConexao.Open(); // Abre a conexão com um banco de dados
this.mensagemErro = "";

conectado = true;
}
catch (Exception oErro)
{
this.mensagemErro = oErro.Message;
conectado = false;
}
this.conectado = conectado;
}

public void desconectar()
{
/**
* Desconecta-se do banco de dados
*/
this.objConexao.Close();
this.conectado = false;
}

public bool executar(string comando)
{
/**
* Executa comandos SQL.
*/
bool sucesso;

try
{
this.objComando = new OleDbCommand(comando, this.objConexao);
this.objDt = new DataTable();

OleDbDataReader dr = this.objComando.ExecuteReader();
objDt.Load(dr);

this.quantos = dr.RecordsAffected; // Filtra a quantidade de registros afetados
this.mensagemErro = "";
sucesso = true;
}
catch (Exception oErro)
{
this.quantos = -1;
this.mensagemErro = oErro.Message;
this.objDt = null;
sucesso = false;
}
return sucesso;
}
}
}

namespace AcessoBancoSQL
{
using System.Data.SqlClient;

public class BancoSQL : BancoDados
{
private SqlConnection objConexao; // Objeto de conexão com o banco através do driver odbc
private SqlCommand objComando;

public void conectar()
{
/**
* Tenta realizar uma conexão com um Banco de Dados
*/
bool conectado;
try
{
this.objConexao = new SqlConnection(this.strConexao);
this.objConexao.Open(); // Abre a conexão com um banco de dados
this.mensagemErro = "";

conectado = true;
}
catch (Exception oErro)
{
this.mensagemErro = oErro.Message;
conectado = false;
}
this.conectado = conectado;
}

public void desconectar()
{
/**
* Desconecta-se do banco de dados
*/
this.objConexao.Close();
this.conectado = false;
}

public bool executar(string comando)
{
/**
* Executa comandos SQL.
*/
bool sucesso;

try
{
this.objComando = new SqlCommand(comando, this.objConexao);
this.objDt = new DataTable();

SqlDataReader dr = this.objComando.ExecuteReader();
objDt.Load(dr);

this.quantos = dr.RecordsAffected; // Filtra a quantidade de registros afetados
this.mensagemErro = "";
sucesso = true;
}
catch (Exception oErro)
{
this.quantos = -1;
this.mensagemErro = oErro.Message;
this.objDt = null;
sucesso = false;
}
return sucesso;
}
}
}

Sem comentários:

Enviar um comentário