2

我在尝试为我正在从事的这个项目输入数据时遇到了麻烦。我有三个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 次。我理解代码做同样的事情,这就是它重复的原因,但为什么第三组而不是第一组或中间组?我如何让第一个网格拥有第一组,而第二个网格拥有第二组?

在此处输入图像描述

4

1 回答 1

1

尝试使用数据集,并从数据集中获取数据表。

DataSet dataSet = new DataSet();
SqlDataAdapter ad = new SqlDataAdapter(cmd);
        ad.Fill(dataSet);

        GridView1.DataSource = dataset.Tables[0];
        GridView1.DataBind();
        GridView2.DataSource = dataset.Tables[1];
        GridView2.DataBind();
        GridView3.DataSource = dataset.Tables[2];
        GridView3.DataBind();
于 2012-07-02T19:25:57.040 回答