2012-07-02 70 views
2

我在嘗試爲我正在處理的此項目輸入數據時遇到問題。我有三個GridViews,我想填充來自查詢的三組數據。下面的代碼只生成三個網格;他們都在重複第三套。如何將3組數據放入asp.net

我想要做的是獲得第一個集合並將其放入第一個網格,獲取第二個集合並將其放入第二個網格,並將第三個集合放入第三個網格。我不知道它爲什麼只檢索最後一組。我認爲這與適配器方法有關?

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

+2

因爲ad.Fill(dt3);是您填寫適配器的最後一個聲明 –

+0

您的查詢不會改變或我錯過了什麼? – codingbiz

+0

你正在用同樣的sproc「ProxyReport」填充所有3個(廣告) – user1166147

回答

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(); 
+0

謝謝!這是我需要的。 – Cloud

+0

我爲你感到高興Cloud –

+0

好的,我上面發佈的代碼,它的格式都正確對齊。但是當我更改爲數據適配器時,它將格式化搞亂了。我不確定這是怎麼回事。 – Cloud