1
我一直在努力在單擊按鈕時在網格視圖中顯示存儲過程的結果集。使用存儲過程的結果集填充GridView
我的問題是,我正在基於3層架構的門戶現有代碼,它不允許我使用像SqlDataAdapter
等東西。因爲這些功能已經通過一些以dll的形式提供的方法來加入。
我試圖返回DataTable
或DataSet
作爲GridView控件的數據源,但徒勞無功。
請幫助我建議是否有任何可以分配給gridview的數據源的替代對象..我是新來的所有這些..任何幫助是最感謝!
這裏是我的代碼:
數據訪問層:
public IDataReader BindGridView(string rgn)
{
string spdName = "spd_get_default_region";
DbCommand cmd = DB.GetStoredProcCommand(spdName);
DB.AddInParameter(cmd, "Rgn", DbType.String, rgn);
IDataReader idr = cmd.ExecuteReader();
return idr;
}
這裏,GetStoredProcCommand
是一個內置的方法。 gvAll
是gridview的ID。
Grid.aspx.cs:
protected void Go_Rgn_Click(object sender, EventArgs e)
{
DAL da=new DAL();
plhTable.Visible = true;
plhChoose.Visible = false;
plhForm.Visible = false;
string Rgn = afRgn.Text;
gvAll.DataSource = da.BindGridView(Rgn);
gvAll.DataBind();
}
不錯..謝謝!!但是必須檢查是否允許ExecuteReader用於正在處理的解決方案.. – user1080139
沒問題,如果您不能使用ExecuteReader,您將不得不找出一種方法來修改爲DLL創建的現有數據訪問,或者使用完全不同的方法,如LinqToSQL或實體框架。在某些層次上,所有的方法都必須在基本級別執行SQL。 – Turnkey