如何将3组数据放入asp.net

时间:2012-07-02 18:31:10

标签: c# sql asp.net adaptor

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

enter image description here

1 个答案:

答案 0 :(得分: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();