none
Erro ao tentar adicionar uma coluna autoincrementável a um datagridview RRS feed

  • Pergunta

  • Olá, amigos!

    Estou tentando adicionar uma coluna autoincrementável num datagridview mas não estou conseguindo descobrir o que falta para funcionar corretamente. O meu programa lê os dados de uma tabela do banco de dados e exibe em um datagridview. Preciso adicionar uma coluna autoincrementável chamada 'Legenda', pois os valores da tabela também são representados em um gráfico e a coluna 'Legenda' existe para facilitar a interpretação dos dados pelo usuário.

    Segue parte do código responsável por isso. A coluna chamada 'Legenda' aparece no datagridview, mas as linhas ficam em branco.

    Conexao ca = new Conexao();
    string sql = "";
    sql += " Select ";
    sql += " CausaDef, Incidencia ";
    sql += " From ";
    sql += " Relat ";
    
    ca.Conectar();
    OleDbDataAdapter da = new OleDbDataAdapter(sql, ca.cx);
    DataSet ds = new DataSet();
    da.Fill(ds, "DetGraf");
    
    object sumObject;
    sumObject = ds.Tables["DetGraf"].Compute("Sum(Incidencia)", "");
    
    ds.Tables["DetGraf"].Rows.Add("TOTAL", sumObject.ToString());
    
    DataColumn Legenda = new DataColumn();
    Legenda.ColumnName = "Legenda";
    Legenda.DataType = typeof(int);
    Legenda.AutoIncrement = true;
    Legenda.AutoIncrementSeed = 1;
    Legenda.AutoIncrementStep = 1;
    
    ds.Tables["DetGraf"].Columns.Add(Legenda);
    
    dgvDetGraf.DataSource = ds.Tables["DetGraf"];
    
    ca.Desconectar();

    Obs.: o banco de dados está em Access

    Desde já agradeço!

    • Editado LD_7 segunda-feira, 30 de maio de 2016 18:26
    segunda-feira, 30 de maio de 2016 16:50

Respostas

  • Boa noite,

    Uma opção seria fazer assim:

    ds.Tables["DetGraf"].Columns.Add(Legenda);
    
    int index = 0;
    foreach (DataRow row in ds.Tables["DetGraf"].Rows)
        row.SetField(Legenda, ++index);
    
    dgvDetGraf.DataSource = ds.Tables["DetGraf"];

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Sugerido como Resposta Silvaney quarta-feira, 1 de junho de 2016 02:09
    • Marcado como Resposta Thales F Quintas quarta-feira, 1 de junho de 2016 15:08
    quarta-feira, 1 de junho de 2016 02:08

Todas as Respostas

  • Boa noite,

    Uma opção seria fazer assim:

    ds.Tables["DetGraf"].Columns.Add(Legenda);
    
    int index = 0;
    foreach (DataRow row in ds.Tables["DetGraf"].Rows)
        row.SetField(Legenda, ++index);
    
    dgvDetGraf.DataSource = ds.Tables["DetGraf"];

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Sugerido como Resposta Silvaney quarta-feira, 1 de junho de 2016 02:09
    • Marcado como Resposta Thales F Quintas quarta-feira, 1 de junho de 2016 15:08
    quarta-feira, 1 de junho de 2016 02:08
  • Olá, Silvaney!

    Deu certo! Muito obrigado!!!


    sexta-feira, 3 de junho de 2016 18:02