Array
(
)

Trabalhando com DataGridView em C#

Geraldo Junio
   - 14 mai 2010

Bom dia!

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?

Melantonio
|
MVP
Pontos: 300
    17 mai 2010

Bom dia Gerando,

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é +

0
|
0

Melantonio
|
MVP
Pontos: 300
    17 mai 2010

Bom dia Geraldo,

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é +

0
|
0

Adalberto Junior.
   - 19 mai 2010

Bom dia!     Existe varias formas de fazer, mas como vc ja tem um metodo que retorna do dataset vc pode fazer isso aqui.   DataGridView1.DataSource = ds.Tables[0];   E resolera seu problema.

0
|
0

Netasper
   - 19 mai 2010

Simples... atribui o resultado do Dataset no datasource do Datagridview... como no exemplo acima!!!

0
|
0