【发布时间】:2012-07-03 04:39:39
【问题描述】:
我在尝试为我正在进行的这个项目输入数据时遇到了麻烦。我有三个GridViews,我想用查询中的三组数据填充它们。下面的代码只生成了三个网格;他们都在复制第三组。
我要做的是获取第一组并将其放入第一个网格,获取第二组并将其放入第二个网格,然后将第三组放入第三个网格。
我不知道为什么它只检索最后一组。我认为这与适配器方法有关?
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
DataTable dt2 = new DataTable();
DataTable dt3 = new DataTable();
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ISALog1ConnectionString"].ToString());
SqlCommand cmd = new SqlCommand("exec ProxyReport", conn);
cmd.CommandTimeout = 200;
SqlDataAdapter ad = new SqlDataAdapter(cmd);
ad.Fill(dt);
ad.Fill(dt2);
ad.Fill(dt3);
GridView1.DataSource = dt;
GridView1.DataBind();
GridView2.DataSource = dt2;
GridView2.DataBind();
GridView3.DataSource = dt3;
GridView3.DataBind();
}
}
这就是它得到的结果,它在底部获取最后一组并将其复制 3 次。我理解代码做同样的事情,这就是它重复的原因,但为什么第三组而不是第一组或中间组?我如何让第一个网格拥有第一组,而第二个网格拥有第二组?
【问题讨论】:
-
因为 ad.Fill(dt3);是你填写适配器的最后一条语句
-
您的查询没有改变还是我遗漏了什么?
-
您正在用相同的 sproc "ProxyReport" (ad) 填充所有 3 个文件
-
是的,它没有改变。应该是这样,但我不确定为什么它会拉第三盘而不是从第一盘开始拉?填充 dt3 等只是对象名称。我知道它将数据放入数据表 (dt) 和其他 2. 是否是适配器导致它仅提取第三组而不是第一组或第二组?
-
sql中的proxyreport,代码生成循环生成3个数据集。