Preencher dados de diversas consultas na mesma fonte de dados
Autor:Eve Cole
Data da Última Atualização:2009-07-01 16:14:59
DataSet é frequentemente usado como fonte de dados do controle na escrita de código. Geralmente, um controle só pode ser vinculado a uma fonte de dados. Se desejar vincular os resultados de diversas consultas ao banco de dados a um controle, você deverá preencher os resultados de diversas consultas na mesma fonte de dados. Claro, esta função também pode ser implementada desenhando tabelas dinamicamente, mas acho que o processamento dinâmico de tabelas é muito problemático. O teste a seguir foi feito para esse propósito e foi bem-sucedido. Vou compartilhá-lo agora.
Princípio: Preencha os resultados de múltiplas consultas na mesma Tabela do mesmo DataSet, mas ao preencher duas vezes, os campos devem ter o mesmo alias, caso contrário aparecerão linhas NULL desnecessárias.
O código é o seguinte:
1 banco de dados vazio privado ()
2 {
3 string sql1="selecione xqid como yhm ,xqmc como zsxm de xt_xq";//
4 string sql2="selecione xt_zdb_style como yhm, descrição como zsxm de xt_zdb";//sql1 e sql2 usam os mesmos aliases de campo yhm e zsxm
5 usando (conexão OracleConnection = new OracleConnection("Data Source=abeen;User Id=system;Password=abeen;"))
6 {
7 DataSet ds = novo DataSet();
8 tentativas
9 {
10 conexão.Open();
11 Comando OracleDataAdapter = novo OracleDataAdapter(sql2,conexão);
12 command.Fill(ds,0,5,"TableName");//Preenche os dados em TableName pela primeira vez
13 comando = novo OracleDataAdapter(sql1,conexão);
14 command.Fill(ds,"TableName"); //Preenche os dados em TableName pela segunda vez
15
16 this.DataGrid1.DataSource=ds;//Os resultados dos dois preenchimentos estão no TableName de ds
17 this.DataGrid1.DataBind();
18}
19 captura (System.Data.OracleClient.OracleException ex)
20 {
21 lança nova exceção (ex.Mensagem);
vinte e dois }
vinte e três
vinte e quatro }
25}
http://www.cnblogs.com/abeen/archive/2006/11/21/567893.html