Remplissez les données de plusieurs requêtes dans la même source de données
Auteur:Eve Cole
Date de mise à jour:2009-07-01 16:14:59
DataSet est souvent utilisé comme source de données du contrôle dans l'écriture de code. Généralement, un contrôle ne peut être lié qu'à une seule source de données. Si vous souhaitez lier les résultats de plusieurs requêtes sur la base de données à un contrôle, vous devez remplir les résultats de plusieurs requêtes dans la même source de données. Bien sûr, cette fonction peut également être implémentée en dessinant dynamiquement des tableaux, mais je pense que le traitement dynamique des tableaux est trop gênant. Le test suivant a été réalisé à cet effet et le test a réussi, je vais le partager maintenant.
Principe : remplissez les résultats de plusieurs requêtes dans la même table du même DataSet, mais lors du remplissage deux fois, les champs doivent avoir le même alias, sinon des lignes NULL inutiles apparaîtront.
Le code est le suivant :
1base de données vide privée()
2 {
3 string sql1="sélectionnez xqid comme yhm, xqmc comme zsxm depuis xt_xq" ;//
4 string sql2="sélectionnez xt_zdb_style comme yhm, description comme zsxm depuis xt_zdb";//sql1 et sql2 utilisent les mêmes alias de champ yhm et zsxm
5 en utilisant (OracleConnection connection = new OracleConnection("Data Source=abeen;User Id=system;Password=abeen;"))
6 {
7 DataSetds = new DataSet();
8 essayer
9 {
10 connexion.Open();
11 Commande OracleDataAdapter = new OracleDataAdapter(sql2,connection);
12 command.Fill(ds,0,5,"TableName");//Remplir les données dans TableName pour la première fois
13 commande = nouveau OracleDataAdapter (sql1, connexion);
14 command.Fill(ds,"TableName");//Remplir les données dans TableName pour la deuxième fois
15
16 this.DataGrid1.DataSource=ds;//Les résultats des deux remplissages sont dans le TableName de ds
17 this.DataGrid1.DataBind();
18}
19 capture (System.Data.OracleClient.OracleException ex)
20 {
21 lancer une nouvelle exception (ex.Message);
vingt-deux }
vingt-trois
vingt-quatre }
25}
http://www.cnblogs.com/abeen/archive/2006/11/21/567893.html