我在SQL Server中有一个存储过程,它返回7个结果集。我想从ASP.NET调用这个存储过程,并在结果中填充ASP.NET页面上的七个GridViews。我正在使用SqlDataReader来获取数据,但是我正在努力使用C#代码来填充GridViews。如何从一个存储过程填充许多GridView控件?
我创建了一个DAL类来获取数据,我在那里有这个方法:
public SqlDataReader CheckDataIntegrity()
{
SqlCommand cmd = new SqlCommand("cc.DataCheck");
return MultipleResults(cmd);
}
辅助方法MultipleResults看起来是这样的:
private SqlDataReader MultipleResults(SqlCommand cmd)
{
SqlConnection con = new SqlConnection(_connectionString);
cmd.Connection = con;
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
con.Close();
return dr;
}
我试图打电话我的页面上的组件类似于:
private void FillGridViews()
{
DBUtil DB = new DBUtil();
using (SqlDataReader dr = DB.CheckDataIntegrity())
{
if (dr.HasRows)
{
while (dr.Read())
{
GridView1.DataSource = dr;
GridView1.DataBind();
}
}
}
}
我在网上搜索了一个这个,但是找不到任何东西。
你知道一个资源,或有一个小例子来分享吗?
谢谢。
在你的multipleResults方法中,你应该用using语句来包围你的SqlConnection。 – Lareau 2010-11-18 12:59:44
@Laraeu - 这没有什么区别,我仍然无法尝试在阅读器关闭时调用HasRows。 – 2010-11-18 13:09:39
我看到了您在答案评论中遇到的问题。我会考虑将MultipleResults的参数更改为接受sqlconnection,这样可以有效地管理打开和关闭。 – Lareau 2010-11-18 16:06:24