如何將Stored Procedure的結果丟到Client端的InfoDataSet呢?
這個可以通過一些變通的方法實現
1. 在Server端放一個InfoCommand,sql語句設成跟您存儲過程返回回來的欄位一樣,例如:select 'abc' as f1, 0.0 as f2....from table where 1=0
只是為了取得table的結構而已。
2. 在Client端使用一個InfoDataSet,比如叫Master,就關聯到步驟1的InfoCommand。
3. 按照Report正常設計。
4. 在設定資料來源時,改成如下:
if (ret[0].ToString() == "0")
{
//將返回的內容導入到Master中,這樣就可以用報表顯示出來
Master.RealDataSet.Tables[0].Merge((DataTable)ret[1]);
idgStat.DataSource = ret[1];//這個是用於顯示在Gridview上.
//再加上下麵兩句,就將報表顯示出來了
this.CrystalReport11.SetDataSource(Master.RealDataSet);
crystalReportViewer1.ReportSource = CrystalReport11;
}
以上程式,請依據自己的環境適當修改。