Trabalhando com DataGridView em C#
14/05/2010
0
Estou criando cadastro de cliente e quero preencher um grid, porém crie uma classe para conexão com o banco de dados e uma classe para buscar os dados no banco.
Estou trabalhando no formato de 3 camadas.
Segue exemplo de como estão o meu projeto.
Banco:
class DataManegerBDE
{
//define a string de conexao com provedor caminho e nome do banco de dados
string strConexao = "Provider=MSDAORA;Data Source=homologacao;" +
"Persist Security Info=True;User ID=geraldo.lahass;" +
"Password=teste";
//Classe para Abrir o Banco de Dados
private OleDbConnection AbrirConexao()
{
//cria a conexão com o banco de dados
OleDbConnection con = new OleDbConnection(strConexao);
con.Open();
return con;
}
//Classe para Fechar o Banco de Dados
public void FecharConexao(OleDbConnection con)
{
if (con.State==ConnectionState.Open)
con.Close();
}
//Classe para execução de comando
public void ExecutarComando(string strQuery)
{
OleDbConnection con = new OleDbConnection();
try
{
con = AbrirConexao();
//cria o objeto command para executar a instruçao sql
OleDbCommand cmd = new OleDbCommand();
//define o tipo do comando
cmd.CommandText = strQuery.ToString();
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
cmd.ExecuteNonQuery();
}
catch
{
MessageBox.Show("Erro na execução do comando sql!", "Erro");
}
finally
{
FecharConexao(con);
}
}
//Classe que retorna um objeto DataSet
public DataSet RetornarDataSet (string strQuery)
{
OleDbConnection con = new OleDbConnection();
try
{
con = AbrirConexao();
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = strQuery.ToString();
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
cmd.ExecuteNonQuery();
OleDbDataAdapter da = new OleDbDataAdapter();
DataSet ds = new DataSet();
da.SelectCommand = cmd;
da.Fill(ds);
return ds;
}
catch
{
MessageBox.Show("Erro ao carregar o DataSet!","Erro");
return null;
}
finally
{
FecharConexao(con);
}
}
//Classe para retornar um DataReader()
public OleDbDataReader RetornarDataReader(string strQuery)
{
OleDbConnection con = new OleDbConnection();
try
{
con = AbrirConexao();
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = strQuery.ToString();
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
return cmd.ExecuteReader();
}
catch
{
MessageBox.Show("Erro ao carregar o DataReader!", "Erro");
return null;
}
finally
{
FecharConexao(con);
}
}
}
Classe que acessa os dados no banco.
public class TCliente : IPessoaFisica, IPessoaJuridica
{
//Campos privados a classe
private char DSCSEXO;
private char IDTPESSOA;
//propriedades, acesso aos campos privados
public char SEXO
{
get { return DSCSEXO; }
set { DSCSEXO = value; }
}
public char PESSOA
{
get { return IDTPESSOA; }
set { IDTPESSOA = value; }
}
public void BuscarCodigo(int CODCLIENTE)
{
string sql = "SELECT GCL.CODCLIENTE, " +
" GCL.NOMCLIENTE, " +
" GCL.DSCCNPJ, " +
" GCL.DSCSEXO, " +
" GCL.DSCCARTEIRAIDENTIDADE, " +
" CASE " +
" WHEN GCL.IDTSITUACAO = 'A' THEN " +
" 0 " +
" ELSE " +
" 1 " +
" END STATUS " +
" FROM DELTA.GEN_CLIENTE GCL " +
" WHERE GCL.CODCLIENTE = "+CODCLIENTE;
DataManegerBDE cliente = new DataManegerBDE();
DataSet ds = cliente.RetornarDataSet(sql);
if (ds.Tables[0].Rows.Count > 0)
{
Array dados = ds.Tables[0].Rows[0].ItemArray;
CODPESSOA = Convert.ToInt32(dados.GetValue(0));
DSCNOME = Convert.ToString(dados.GetValue(1));
DSCCPF = Convert.ToString(dados.GetValue(2));
SEXO = Convert.ToChar(dados.GetValue(3));
DSCCI = Convert.ToString(dados.GetValue(4));
IDTSTATUS = Convert.ToBoolean(dados.GetValue(5));
PESSOA = 'F';
}
}
public void BuscarNome()
{
throw new System.NotImplementedException();
}
#region IPessoa Members
public int CODLOGRADOURO
{
get
{
return CODLOGRADOURO;
}
set
{
CODLOGRADOURO = value;
}
}
public string DSCNOME
{
get
{
return DSCNOME;
}
set
{
DSCNOME = value;
}
}
public int NUNNUMERO
{
get
{
return NUNNUMERO;
}
set
{
NUNNUMERO = value;
}
}
public int CODPESSOA
{
get
{
return CODPESSOA;
}
set
{
CODPESSOA = value;
}
}
public string DSCEMAIL
{
get
{
return DSCEMAIL;
}
set
{
DSCEMAIL = value;
}
}
public DateTime DATDATACADASTRO
{
get
{
return DATDATACADASTRO;
}
set
{
DATDATACADASTRO = value;
}
}
public string DSCCOMPLEMENTO
{
get
{
return DSCCOMPLEMENTO;
}
set
{
DSCCOMPLEMENTO = value;
}
}
public DateTime DATDATADESATIVACAO
{
get
{
return DATDATADESATIVACAO;
}
set
{
DATDATADESATIVACAO = value;
}
}
public bool IDTSTATUS
{
get
{
return IDTSTATUS;
}
set
{
IDTSTATUS = value;
}
}
#endregion
#region IPessoaFisica Members
public DateTime DATDATANASCIMENTO
{
get
{
return DATDATANASCIMENTO;
}
set
{
DATDATANASCIMENTO = value;
}
}
public string DSCCI
{
get
{
return DSCCI;
}
set
{
DSCCI = value;
}
}
public string DSCORGAOEXPEDITOR
{
get
{
return DSCORGAOEXPEDITOR;
}
set
{
DSCORGAOEXPEDITOR = value;
}
}
public string DSCCPF
{
get
{
return DSCCPF;
}
set
{
DSCCPF = value;
}
}
public int NUMAPARTAMENTO
{
get
{
return NUMAPARTAMENTO;
}
set
{
NUMAPARTAMENTO = value;
}
}
#endregion
#region IPessoaJuridica Members
public string DSCCNPJ
{
get
{
return DSCCNPJ;
}
set
{
DSCCNPJ = value;
}
}
public string DSCRAZAOSOCIAL
{
get
{
return DSCRAZAOSOCIAL;
}
set
{
DSCRAZAOSOCIAL = value;
}
}
public string DSCINSCRICAOESTADUAL
{
get
{
return DSCINSCRICAOESTADUAL;
}
set
{
DSCINSCRICAOESTADUAL = value;
}
}
public bool BOLMICROEMPRESA
{
get
{
return BOLMICROEMPRESA;
}
set
{
BOLMICROEMPRESA = value;
}
}
#endregion
}
public class TTelefone
{
private string DSCTELEFONE;
private TTipoTelefone CODTIPOTELEFONE;
private IPessoa CODPESSOA;
public string TELEFONE
{
get { return DSCTELEFONE; }
set { DSCTELEFONE = value; }
}
public TTipoTelefone TIPOTELEFONE
{
get { return CODTIPOTELEFONE; }
set { CODTIPOTELEFONE = value; }
}
internal IPessoa CODIGOPESSOA
{
get { return CODPESSOA; }
set { CODPESSOA = value; }
}
}
public class TTipoTelefone
{
private int CODTIPOTELEFONE;
private string DSCTIPOTELEFONE;
public int CODIGO
{
get { return CODTIPOTELEFONE; }
set { CODTIPOTELEFONE = value; }
}
public string DESCRICAO
{
get { return DSCTIPOTELEFONE; }
set { DSCTIPOTELEFONE = value; }
}
}
Como faço para que esses dados que estão sendo buscados, carregue em um DataGridView?
Geraldo Junio
Posts
17/05/2010
Tiago Melantonio
bom seria legal vc separar suas entidades da classe que possui os métodos, cria sua entidade somente com os atributos e depois crie um classe somente com os metodos (DAO).
Na DAO voce vai ter o método que vai retornar os registros, ou seja, uma lista da Entidade.
EX:
//DAO
public List<TCliente> ListarRegistros()
{
// aqui vc chama sua classe de conexao com o banco e com os dados retornados vc cria uma lista de entidade.
}
Depois na sua grid é só vc popular usando o DataSource = new DAO.ListarRegistros();
Até +
17/05/2010
Tiago Melantonio
bom seria legal vc separar suas entidades da classe que possui os métodos, cria sua entidade somente com os atributos e depois crie um classe somente com os metodos (DAO).
Na DAO voce vai ter o método que vai retornar os registros, ou seja, uma lista da Entidade.
EX:
//DAO
public List<TCliente> ListarRegistros()
{
// aqui vc chama sua classe de conexao com o banco e com os dados retornados vc cria uma lista de entidade.
}
Depois na sua grid é só vc popular usando o DataSource = new DAO.ListarRegistros();
Até +
19/05/2010
Adalberto Junior.
19/05/2010
Netasper
Clique aqui para fazer login e interagir na Comunidade :)