ASP.Net2.0 SQLDataSource 取得存儲過程返回參數
最近身邊很多剛開始接觸SQLDataSource控件的朋友都對它的強大功能和簡單易用的特性而吸引。
但是SqlDataSource在提供提高易用性的同時難免會損失一定的靈活性,很多朋友就因為SQLDataSource控件的參數不能使用SQLParameter而耿耿於懷。
SqlDataSource控件使用的參數為Parameter,這個類功能對比SQLParameter類要簡單很多,只有幾個簡單的屬性,我們只能通過Parameter.DefaultValue這個字符串類型的屬性設置參數,很不方便。
同事在一個項目中想通過SqlDataSource調用SQL Server存儲過程,並接受存儲過程的output參數,初期他使用了SqlDataSource.SelectParameter["mypara"].DefaultValue的方式嘗試取得數據,但都失敗了,到網上搜索也沒有找到合適的答案,經過反復嘗試,終於成功,原來是只能在SqlDataSource控件的OnSelected事件裡通過調用SqlDataSourceStatusEventArgs參數獲得存儲過程的output參數,代碼如下:
protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
Label1.Text = e.Command.Parameters["mypara"].Value.ToString();
}
希望對同樣有需要用DataSource調用返回參數的朋友有幫助!