【问题标题】:How to put in 3 sets of data into asp.net如何将3组数据放入asp.net
【发布时间】: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个数据集。

标签: c# sql asp.net adaptor


【解决方案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();

【讨论】:

  • 好的,我上面贴的代码,它的格式都正确对齐。但是当我更改为数据适配器时,它弄乱了格式。我不确定这是怎么回事..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-09
  • 1970-01-01
  • 2014-12-06
  • 2018-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多