在代碼編寫中經常使用dataset做為控件的數據源,通常一個控件只能綁定一個數據源。如果要將多次查詢數據庫的結果綁定到一個控件中,就必須把多次查詢的結果填充到同一個數據源中。當然此功能也可以動態畫表格來實現,不過我感覺動態處理表格實在是太麻煩了。為此做了以下測試并且試驗成功,現在分享出來。
原理:將多次查詢的結果填充到同一個dataset的同一張table中,不過兩次填充時要將字段as成同樣的別名,要不然就會出現不必要的null行。
代碼如下:
1private void databing()
2 {
3 string sql1="select xqid as yhm ,xqmc as zsxm from xt_xq";//
4 string sql2="select xt_zdb_style as yhm ,description as zsxm from xt_zdb";//sql1 、sql2使用相同的字段別名yhm、zsxm
5 using (oracleconnection connection = new oracleconnection("data source=abeen;user id=system;password=abeen;"))
6 {
7 dataset ds = new dataset();
8 try
9 {
10 connection.open();
11 oracledataadapter command = new oracledataadapter(sql2,connection);
12 command.fill(ds,0,5,"tablename");//第一次填充數據到tablename
13 command = new oracledataadapter(sql1,connection);
14 command.fill(ds,"tablename");//第二次填充數據到tablename
15
16 this.datagrid1.datasource=ds;//兩次填充的結果都在ds的tablename中
17 this.datagrid1.databind();
18 }
19 catch(system.data.oracleclient.oracleexception ex)
20 {
21 throw new exception(ex.message);
22 }
23
24 }
25 }
新聞熱點
疑難解答