Usuário com melhor resposta
É possível exibir registros de mais de uma tabela no datagridview?

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?- Movido C. Augusto Proiete [MVP]Moderator quinta-feira, 11 de fevereiro de 2010 23:37 Movido para o fórum apropriado (De:C#)
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
Todas as Respostas
-
-
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,- Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 12 de fevereiro de 2010 16:58
-
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