none
preencher datagridview com valor de outro datagridview RRS feed

  • Pergunta

  • boa tarde galera,

    estou com dúvida para trocar informaçoes com dois datagrid, é o seguinte:

    tenho um datagrid que lista os meus livros, e outro datagrid que vai receber somente os livros que vão ser locados.

    e com um botão eu vou pegar as informaçoes do grid1 e jogar para o grid 2.

    estou tentando fazer isso armazenando as informaçoes do grid1 numa string e depois add elas no grid2 , mais nao sei se é esse o procedimento certo.

    ta ai o código usado :

     

                string a1 = dataGridView1.CurrentRow.Cells["Código"].Value.ToString();

                string a2 = dataGridView1.CurrentRow.Cells["Título"].Value.ToString();

                string a3 = dataGridView1.CurrentRow.Cells["Situação"].Value.ToString();

     

               dataGridView2.CurrentRow.Cells.Add(cells(a1),cells(a2),cells(a3));

     

    não sei se esse é o procedimento certo , ou se o código está errado .

    se puderem me da uma força ai .

    abraço

    domingo, 30 de outubro de 2011 18:54

Respostas

  • Daniel, a melhor forma de você fazer isso é filtrando a fonte de dados do DataGridView ao invés de filtrar os dados das células. Por exemplo, imaginando que você preencha o seu grid com base nos dados de um DataTable seria mais eficiente se você desse um select no DataTable e jogasse o resultado para o outro DataGridView.

     

    DataTable dt = new DataTable();
    dt = ConsultaBanco();
    DataGridView1.DataSource = dt;
    DataGridView2.DataSource = dt.Select("idade > 18");
    

    (esse código não vai rodar, é apenas um exemplo da idéia, o Select retorna um array DataRow)


    Veja o código de exemplo acima, eu trago os dados do meu banco, atribuo para o primeiro grid, depois eu filtro por todas as pessoas com idade maior que 18 anos e jogo para o segundo grid.

    http://msdn.microsoft.com/en-us/library/system.data.datatable.select.aspx

    Outra forma de fazer isso seria com DataView:

     

    DataView dv = dt.DefaultView;
    dv.RowFilter = string.Format("NomePessoa LIKE '%{0}%'", textBox1.Text);
    dataGridView1.DataSource = dv;  
    

    Deu para entender? É isso que você tinha em mente? abraços

     


    Rodrigo Reis Ferreira
    Microsoft Certified
    terça-feira, 8 de novembro de 2011 12:21