none
É possível exibir registros de mais de uma tabela no datagridview? RRS feed

  • Pergunta

  • eu tenho um datagridview e gostaria que fosse exibido nele registros de 3 tabelas.
    por exemplo:

    registros tabela1:
    -teste1
    -teste2
    -teste3

    registros tabela2:
    -teste4
    -teste5
    -teste6

    registros tabela3:
    -teste7
    -teste8
    -teste9

    exibicao no grid:

    -teste1
    -teste2
    -teste3
    -teste4
    -teste5
    -teste6
    -teste7
    -teste8
    -teste9

    será que é possível?
    quarta-feira, 10 de fevereiro de 2010 18:33

Respostas

  • Este método preenche o grid com 3 ou 4 tabelas:

    public void preencheGrid()
    {
    //Monta a query de preenchimento
                string queryEstadia = "SELECT [COD_ESTADIA] as Codigo," +
                                          " F.NOM_FUNCIONARIO as Funcionario," +
                                          " P.DSC_ITEM as Preco," +
                                          " V.NUM_PLACA as Placa," +
                                          " IND_STATUS as Status," +
                                          " DAT_ENTRADA as DataEntrada," +
                                          " HOR_ENTRADA as HoraEntrada," +
                                          " DAT_SAIDA as DataSaida," +
                                          " HOR_SAIDA as HoraSaida," +
                                          " VLR_ESTADIA as ValorEstadia" +
                                          " FROM SERVICO.ESTADIA E" +
                                          " join" +
                                          " RH.FUNCIONARIO F" +
                                          " on " +
                                          " E.COD_FUNCIONARIO = F.COD_FUNCIONARIO" +
                                          " join" +
                                          " FINANCEIRO.PRECO P" +
                                          " on" +
                                          " E.COD_PRECO = P.COD_PRECO" +
                                          " join" +
                                          " ESTACIONAMENTO.VEICULO V" +
                                          " on" +
                                          " E.NUM_PLACA = V.NUM_PLACA" +
                                          " WHERE IND_STATUS = 'E'";

                //Tabela
                string tabela = "ESTADIA";

                DataSet dt = new Dataset();

               //inicia o SqlDataAdapter passando uma query e a conexão com o banco de dados
                    SqlDataAdapter da = new SqlDataAdapter(query, conn);

                    //preenche o dataset
                    da.Fill(dt, tabela);

    grdFinalizar.DataSource = dt;
    grdFinalizar.DataMember = "ESTADIA";
    }
    • Marcado como Resposta Juliane.sw sexta-feira, 12 de fevereiro de 2010 18:47
    quarta-feira, 10 de fevereiro de 2010 19:14

Todas as Respostas

  • você pode fazer uma junção, ou um select de múltiplas tabelas.
    O que vai definir o que será exibido será o seu select!


    quarta-feira, 10 de fevereiro de 2010 19:02
  • Boa tarde.

    Não sei se é viável fazer isso, mas tem como.

                SqlConnection conexao = new SqlConnection("String de Conexão");

                SqlCommand comando = new SqlCommand();

                SqlDataReader dr;

                comando.Connection = conexao;

     

                try

                {

     

                    conexao.Open(); // Abre a conexão.

     

                    //Tabela 1

                    comando.CommandText = "select * from tabela 1";

                    dr = comando.ExecuteReader(); // Executa a leitura;

     

                    while (dr.Read()) // Enquanto estiver fazendo a leitura.

                    {

                        // Adiciona linhas com os dados da tabela 1

                        dataGridView1.Rows.Add(dr["Nome do campo"]);

                    }

                    dr.Close(); // Fecha o SqlDataReader. SE NÃO TIVER ISSO, DA ERRO!

     

                    //Tabela 2

                    comando.CommandText = "select * from tabela 2";

                    dr = comando.ExecuteReader();// Executa a leitura;

     

                    while (dr.Read())// Enquanto estiver fazendo a leitura.

                    {

                        // Adiciona linhas com os dados da tabela 2

                        dataGridView1.Rows.Add(dr["Nome do campo"]);

                    }

                    dr.Close();// Fecha o SqlDataReader. SE NÃO TIVER ISSO, DA ERRO!

     

                    //Tabela 3

                    comando.CommandText = "select * from tabela 3";

                    dr = comando.ExecuteReader();// Executa a leitura;

     

                    while (dr.Read())// Enquanto estiver fazendo a leitura.

                    {

                        // Adiciona linhas com os dados da tabela 3

                        dataGridView1.Rows.Add(dr["Nome do campo"]);

                    }

                    dr.Close();// Fecha o SqlDataReader. SE NÃO TIVER ISSO, DA ERRO!

     

                }

                catch (Exception)

                {

     

                    throw;

                }

                finally

                {

                    conexao.Close();// FECHA A CONEXÃO.

                }


    Tenta algo parecido com esse codigo.

    Espero ter ajudado.

    sds,

    quarta-feira, 10 de fevereiro de 2010 19:08
  • Este método preenche o grid com 3 ou 4 tabelas:

    public void preencheGrid()
    {
    //Monta a query de preenchimento
                string queryEstadia = "SELECT [COD_ESTADIA] as Codigo," +
                                          " F.NOM_FUNCIONARIO as Funcionario," +
                                          " P.DSC_ITEM as Preco," +
                                          " V.NUM_PLACA as Placa," +
                                          " IND_STATUS as Status," +
                                          " DAT_ENTRADA as DataEntrada," +
                                          " HOR_ENTRADA as HoraEntrada," +
                                          " DAT_SAIDA as DataSaida," +
                                          " HOR_SAIDA as HoraSaida," +
                                          " VLR_ESTADIA as ValorEstadia" +
                                          " FROM SERVICO.ESTADIA E" +
                                          " join" +
                                          " RH.FUNCIONARIO F" +
                                          " on " +
                                          " E.COD_FUNCIONARIO = F.COD_FUNCIONARIO" +
                                          " join" +
                                          " FINANCEIRO.PRECO P" +
                                          " on" +
                                          " E.COD_PRECO = P.COD_PRECO" +
                                          " join" +
                                          " ESTACIONAMENTO.VEICULO V" +
                                          " on" +
                                          " E.NUM_PLACA = V.NUM_PLACA" +
                                          " WHERE IND_STATUS = 'E'";

                //Tabela
                string tabela = "ESTADIA";

                DataSet dt = new Dataset();

               //inicia o SqlDataAdapter passando uma query e a conexão com o banco de dados
                    SqlDataAdapter da = new SqlDataAdapter(query, conn);

                    //preenche o dataset
                    da.Fill(dt, tabela);

    grdFinalizar.DataSource = dt;
    grdFinalizar.DataMember = "ESTADIA";
    }
    • Marcado como Resposta Juliane.sw sexta-feira, 12 de fevereiro de 2010 18:47
    quarta-feira, 10 de fevereiro de 2010 19:14