Mar*_*son 2 c# asp.net multiple-resultsets
我在 SQL Server 中有一个存储过程,它返回七个结果集。我想从 ASP.NET 调用此存储过程,并使用结果填充 ASP.NET 页面上的七个 GridView。我正在使用 SqlDataReader 来获取数据,但是我正在努力使用 C# 代码来填充 GridView。
我创建了一个 DAL 类来获取数据,其中有这个方法:
public SqlDataReader CheckDataIntegrity()
{
SqlCommand cmd = new SqlCommand("cc.DataCheck");
return MultipleResults(cmd);
}
Run Code Online (Sandbox Code Playgroud)
辅助方法 MultipleResults 如下所示:
private SqlDataReader MultipleResults(SqlCommand cmd)
{
SqlConnection con = new SqlConnection(_connectionString);
cmd.Connection = con;
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
con.Close();
return dr;
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下内容调用页面上的组件:
private void FillGridViews()
{
DBUtil DB = new DBUtil();
using (SqlDataReader dr = DB.CheckDataIntegrity())
{
if (dr.HasRows)
{
while (dr.Read())
{
GridView1.DataSource = dr;
GridView1.DataBind();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我确实在网上搜索了这方面的示例,但找不到任何内容。
您知道资源,或者有一个小例子可以分享吗?
谢谢。
您应该使用 DataSet,它可以将多个表绑定到 GridView。
var dataset = GetDataSetForMy7GridViews();
// also valid: dataset.Tables["TableName"];
GridView1.DataSource = dataset.Tables[0];
GridView1.DataBind();
GridView2.DataSource = dataset.Tables[1];
GridView2.DataBind();
GridView3.DataSource = dataset.Tables[2];
GridView3.DataBind();
GridView4.DataSource = dataset.Tables[3];
GridView4.DataBind();
GridView5.DataSource = dataset.Tables[4];
GridView5.DataBind();
GridView6.DataSource = dataset.Tables[5];
GridView6.DataBind();
GridView7.DataSource = dataset.Tables[6];
GridView7.DataBind();
Run Code Online (Sandbox Code Playgroud)
由于您要绑定到 7 个不同的 GridView,因此您需要这样做。如果你按照你的代码来做:
> while (dr.Read())
> {
> GridView1.DataSource = dr;
> GridView1.DataBind();
> }
Run Code Online (Sandbox Code Playgroud)
它只会绑定到 1 个 GridView。
补充:也许这个链接可以回答您的问题? http://www.codeguru.com/csharp/csharp/cs_network/database/article.php/c8715
| 归档时间: |
|
| 查看次数: |
4291 次 |
| 最近记录: |