使用存储过程的结果集填充 GridView

本文关键字:填充 GridView 结果 存储过程 | 更新日期: 2023-09-27 18:35:21

我一直在努力通过单击按钮在网格视图中显示存储过程的结果集。

我的问题是,我正在处理基于 3 层架构的门户的现有代码,这不允许我使用诸如SqlDataAdapter之类的东西。因为这些功能已经被一些以 dll 形式提供的方法合并了。

我尝试返回DataTableDataSet作为网格视图的数据源,但徒劳无功。

请帮助我建议是否有任何替代对象可以分配给网格视图的数据源。我对这一切是新手..任何帮助都是最感激的!

这是我的代码:

数据访问层:

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是网格视图的 ID。

网格.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();
}

使用存储过程的结果集填充 GridView

一个简单的替代方法是创建一个 dataTable 对象。

DataTable defaultRegion = new DataTable();
defaultRegion.Load(cmd.ExecuteReader());
gvAll.DataSource = table;
gvAll.DataBind();