2010-06-21 42 views
1

簡單的事情得到綁定網格視圖中存在的列的列表,就是它, 但給出錯誤。gridview.columns如何檢索它?

嘗試獲得列數也不起作用!它說零?

下面的代碼:

 try 
     { 

      commandString = "Select * from Table_1"; 

      conn = new SqlConnection(Class1.connection); 

      command = new SqlCommand(commandString, conn); 

      conn.Open(); 

      reader = command.ExecuteReader(); 



      GridView1.DataSource = reader; 

      GridView1.DataBind(); 

      //also not wrking?? 
      Label1.Text = GridView1.Columns.Count.ToString; 


      reader.Close(); 
      reader.Dispose(); 

      conn.Close(); 
      conn.Dispose(); 

有什麼不對?有沒有一種替代方法可以查詢網格視圖的列?自動生成列是真實的。

+0

isautogenerated屬性vlue是真的 – 2010-06-21 18:28:22

+0

是的,它是真實的。 ... – user287745 2010-06-21 18:41:14

回答

0

我這是怎麼實現它,希望它可以幫助別人,如果沒有更好的編碼是可能的,請做評論感謝


int cells_count; 
      ArrayList Header_list = new ArrayList();

//wrking..

cells_count = GridView1.HeaderRow.Cells.Count; for (int i = 0; i < cells_count; i++) { Header_list.Add(GridView1.HeaderRow.Cells[i].Text); } // Label1.Text = GridView1.HeaderRow.Cells[1].Text; //the first colunm name Label1.Text = Header_list[0].ToString();
0

綁定到閱讀器不是一個好主意......將它綁定到一個DataTable,看看它對你有多好。這可能會幫助 - http://social.msdn.microsoft.com/forums/en-US/winformsdatacontrols/thread/df9f7cdb-9b27-4e54-8527-1e4701cefbe1/

+0

爲什麼不是一個好主意,我的意思是說有任何安全問題,或者數據會丟失問題或滯後問題,或者只是困難? – user287745 2010-06-21 19:08:44

+0

首先,我不確定如果分頁在gridview中如果綁定到讀取器,它將如何工作,但是最好的做法是表示層不應該知道有關數據庫的任何內容。通過綁定你的gridview到一個閱讀器,你可以在圖層之間有很高的耦合度通常,您希望從服務層或業務層返回一個DataTable,或者更好的是返回一個數據傳輸對象(DTO)。我猜如果這是一個小應用程序,你不關心可伸縮性,那麼綁定到閱讀器是可以的,但是我個人還是會將它綁定到DataTable。 – 2010-06-21 19:53:43