在程式碼編寫中經常使用DataSet做為控制元件的資料來源,通常一個控制元件只能繫結一個數據源。如果要將多次查詢資料庫的結果繫結到一個控制元件中,就必須把多次查詢的結果填充到同一個資料來源中。當然此功能也可以動態畫表格來實現,不過我感覺動態處理表格實在是太麻煩了。為此做了以下測試並且試驗成功,現在分享出來。原理:將多次查詢的結果填充到同一個DataSet的同一張Table中,不過兩次填充時要將欄位as成同樣的別名,要不然就會出現不必要的NULL行。程式碼如下:privatevoiddatabing(){stringsql1="selectxqidasyhm,xqmcaszsxmfromxt_xq";//stringsql2="selectxt_zdb_styleasyhm,descriptionaszsxmfromxt_zdb";//sql1、sql2使用相同的欄位別名yhm、zsxmusing(OracleConnectionconnection=newOracleConnection("DataSource=abeen;UserId=system;Password=abeen;")){DataSetds=newDataSet();try{connection.Open();OracleDataAdaptercommand=newOracleDataAdapter(sql2,connection);command.Fill(ds,0,5,"TableName");//第一次填充資料到TableNamecommand=newOracleDataAdapter(sql1,connection);command.Fill(ds,"TableName");//第二次填充資料到TableNamethis.DataGrid1.DataSource=ds;//兩次填充的結果都在ds的TableName中this.DataGrid1.DataBind();}catch(System.Data.OracleClient.OracleExceptionex){thrownewException(ex.Message);}}}
在程式碼編寫中經常使用DataSet做為控制元件的資料來源,通常一個控制元件只能繫結一個數據源。如果要將多次查詢資料庫的結果繫結到一個控制元件中,就必須把多次查詢的結果填充到同一個資料來源中。當然此功能也可以動態畫表格來實現,不過我感覺動態處理表格實在是太麻煩了。為此做了以下測試並且試驗成功,現在分享出來。原理:將多次查詢的結果填充到同一個DataSet的同一張Table中,不過兩次填充時要將欄位as成同樣的別名,要不然就會出現不必要的NULL行。程式碼如下:privatevoiddatabing(){stringsql1="selectxqidasyhm,xqmcaszsxmfromxt_xq";//stringsql2="selectxt_zdb_styleasyhm,descriptionaszsxmfromxt_zdb";//sql1、sql2使用相同的欄位別名yhm、zsxmusing(OracleConnectionconnection=newOracleConnection("DataSource=abeen;UserId=system;Password=abeen;")){DataSetds=newDataSet();try{connection.Open();OracleDataAdaptercommand=newOracleDataAdapter(sql2,connection);command.Fill(ds,0,5,"TableName");//第一次填充資料到TableNamecommand=newOracleDataAdapter(sql1,connection);command.Fill(ds,"TableName");//第二次填充資料到TableNamethis.DataGrid1.DataSource=ds;//兩次填充的結果都在ds的TableName中this.DataGrid1.DataBind();}catch(System.Data.OracleClient.OracleExceptionex){thrownewException(ex.Message);}}}