2011-04-11 59 views
0

嗨 我已經創建的會話數組:關於綁定數組的GridView

int[] a = (int[])Session["values"]; 

現在我有這個價值,我的GridView控件綁定。我在gridview中有一列(我gridview中的boundfield)。 我用代碼綁定數組的GridView如下,但其唯一的,因爲我想給最後一個值的所有值綁定:

 for (int i = 0; i < a.Length; i++) 
      { 
       str = "select * from Quest_Info where Quest_id='" + a[i] + "' order by Quest_id"; 
       SqlDataAdapter da2 = new SqlDataAdapter(str, sqlconn); 
       ds2 = new DataSet(); 
       da2.Fill(ds2, "Result"); 
      reviewgrid.DataSource = ds2; 
      reviewgrid.DataBind(); 
} 

哪個代碼將這項工作? Asp.net,c# 謝謝。

回答

0

您的代碼可能無法正常工作,因爲您正試圖在for循環中綁定gridview,它繼續重複,並且最終只會綁定最後一個數組id。

您可以嘗試在綁定gridview之前準備查詢,如下例所示。

string questIds = string.Empty; 

for (int i = 0; i < a.Length; i++) 
{ 
    if (questIds.Length > 0) 
     questIds += ", "; 

    questIds += a[i]; 
} 

string strSQL = "select * from Quest_Info where Quest_id IN ("+ questIds + ") order by Quest_id"; 
SqlDataAdapter da2 = new SqlDataAdapter(str, sqlconn); 
ds2 = new DataSet(); 
da2.Fill(ds2, "Result"); 
reviewgrid.DataSource = ds2; 
reviewgrid.DataBind(); 
+0

在當我使用questIds但在gridview的錯誤的值的回覆於那麼它給予權值,在回覆於它給出5,1,6,2,3,4這個代碼但在實際的GridView它給1 2 1 3 4 6 5 – Ishika 2011-04-11 10:20:11

+0

我在你的查詢中看到'order by'子句。所以結果將按照您的GridView中的升序進行排序。 – kyi12321 2011-04-11 10:31:07

+0

不,我刪除了該條款&也檢查。 1也在重複着。但在response.write採取正確的價值,即questIds爲什麼不在gridview – Ishika 2011-04-11 10:33:33