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

时间:2012-05-26 19:06:19

标签: c# asp.net

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

我的问题是我正在研究基于3层架构的门户现有代码,这不允许我使用像SqlDataAdapter这样的东西。因为这些功能已经通过一些以dll形式提供的方法被合并。

我尝试将DataTableDataSet作为gridview的数据源返回但是徒劳无功。

请通过建议是否有任何替代对象可以分配给gridview的数据源来帮助我。我是所有这些的新手..任何帮助都非常感谢!!

这是我的代码:

DataAccess Layer:

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

1 个答案:

答案 0 :(得分:1)

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

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