none
Configurando DataGridView (Ajuda) RRS feed

  • Pergunta

  • Boa tarde amigos do fórum, 

    Estou com uma grande interrogação na hora de configurar o DataGridView.

    Estou usando um banco de dados do tipo, "Microsoft Access Database (.mdb)".

    Em pesquisas na internet, consegui realizar a exibição dos valores da tabela no DataGridView

    private void ExibirClientes()
            {
                // Define a string de conexão com provedor caminho e nome do banco de dados
                string strProvider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
                + Application.StartupPath + @"\Data\bd.mdb";
    
                // Define a instrução SQL
                string strSql = "SELECT * FROM tbClientes";
    
                // Cria a conexão com o banco de dados
                OleDbConnection conn = new OleDbConnection(strProvider);
    
                // Cria o objeto command para executar a instrução sql
                OleDbCommand cmd = new OleDbCommand(strSql, conn);
    
                // Abre a conexão
                conn.Open();
    
                // Define o tipo de comando
                cmd.CommandType = CommandType.Text;
    
                // Obter um datareader ( Leitor de Dados )
                OleDbDataReader dr = cmd.ExecuteReader();
    
                // Obter o número de colunas
                int nColunas = dr.FieldCount;
    
                // Percorre as colunas obtendo o seu nome e incluindo no DataGridView
                for(int i=0; i < nColunas; i++ )
                {
                    dgvClientes.Columns.Add(dr.GetName(i).ToString(), dr.GetName(i).ToString());
                }
    
                // Define um array de string com nColunas
                string[] linhaDados = new string[nColunas];
    
                // Percorre o DataRead
                while (dr.Read())
                {
                    // Percorre cada uma das colunas
                    for(int a =0; a < nColunas; a++)
                    {
                        // Verifica o tipo de dados da coluna
                        if (dr.GetFieldType(a).ToString() == "System.Int32")
                        {
                            linhaDados[a] = dr.GetInt32(a).ToString();
                        }
                        if(dr.GetFieldType(a).ToString() == "System.String")
                        {
                            linhaDados[a] = dr.GetString(a).ToString();
                        }
                        if(dr.GetFieldType(a).ToString() == "System.Date")
                        {
                            linhaDados[a] = dr.GetDateTime(a).ToShortDateString();
                        }
                    }
                    // Atribui a linha ao DataGridView
                    dgvClientes.Rows.Add(linhaDados);
                }
    
            }

    Até ai tudo bem, porém o meu problema começa na edição das colunas do DataGridView. 

    Como faço para renomear as colunas quando são puxadas pelo banco.

    Exemplo; idCliente, eu quero alterar para "Código". porém como estou puxando o banco de fora, e ele não esta víncula à um dataset, simplesmente não aparece nenhuma opção de edição , e lembrando que os dados são exibidos através do Load do formulário clientes.

    Outra dúvida,

    Como faço para remover aquela primeira coluna que exibe uma setinha indicando qual coluna está selecionada?

    Obrigado galera e boa tarde!

    terça-feira, 7 de janeiro de 2014 17:53

Respostas

  • Caro Fulvio,

    Fiz como disse, coloquei o dgvClientes.AutoGenerateColumns = false no Load do form, porém ao iniciar, ainda sim apareceu os nomes dos campos do banco de dados.

    idCliente / Nome / RG / CPF/ etc,etc...

    Alguma outra ideia amigo?

    O erro ta no seu código 

     // Percorre as colunas obtendo o seu nome e incluindo no DataGridView
                for(int i=0; i < nColunas; i++ )
                {
                    dgvClientes.Columns.Add(dr.GetName(i).ToString(), dr.GetName(i).ToString());
                }
    Retire isso então amigo! 


    Fulvio Cezar Canducci Dias

    terça-feira, 7 de janeiro de 2014 19:17

Todas as Respostas

  • Crie as colunas na seta que fica ao lado do DataGridView

    Assim

    Perceba que é bem intuito a criação de colunas !!! inclusive tamanho, fonte e outras configurações estão tudo ai!!!


    Fulvio Cezar Canducci Dias

    terça-feira, 7 de janeiro de 2014 18:01
  • Opa,

    Obrigado pela respota,

    Porém eu criei as colunas , e quando executei o form, ele estava com tudo duplicado.

    Ou seja, estava as colunas que eu criei, e também as colunas do banco de dados.

    idCliente ... .... .... ....

    Código ... .... ... ....

    Ficou bem confuso.

    terça-feira, 7 de janeiro de 2014 18:18
  • Opa,

    Obrigado pela respota,

    Porém eu criei as colunas , e quando executei o form, ele estava com tudo duplicado.

    Ou seja, estava as colunas que eu criei, e também as colunas do banco de dados.

    idCliente ... .... .... ....

    Código ... .... ... ....

    Ficou bem confuso.

    dataGridView2.AutoGenerateColumns = false;

    coloque no form_load!


    Fulvio Cezar Canducci Dias

    terça-feira, 7 de janeiro de 2014 18:20
  • Caro Fulvio,

    Fiz como disse, coloquei o dgvClientes.AutoGenerateColumns = false no Load do form, porém ao iniciar, ainda sim apareceu os nomes dos campos do banco de dados.

    idCliente / Nome / RG / CPF/ etc,etc...

    Alguma outra ideia amigo?

    terça-feira, 7 de janeiro de 2014 18:48
  • Caro Fulvio,

    Fiz como disse, coloquei o dgvClientes.AutoGenerateColumns = false no Load do form, porém ao iniciar, ainda sim apareceu os nomes dos campos do banco de dados.

    idCliente / Nome / RG / CPF/ etc,etc...

    Alguma outra ideia amigo?

    O erro ta no seu código 

     // Percorre as colunas obtendo o seu nome e incluindo no DataGridView
                for(int i=0; i < nColunas; i++ )
                {
                    dgvClientes.Columns.Add(dr.GetName(i).ToString(), dr.GetName(i).ToString());
                }
    Retire isso então amigo! 


    Fulvio Cezar Canducci Dias

    terça-feira, 7 de janeiro de 2014 19:17
  • Perfeito Fúlvio!!!

    Obrigado amigo.

    terça-feira, 7 de janeiro de 2014 20:04