2013-10-19 25 views
0

先生您好,我有一個問題 我綁定我的數據的DataGridView這樣如何在提供數據源後綁定datagridview?

dataGridView1.DataSource = dt1; 

現在根據我加入沒有列到的datagridview例如在DataGridView中列的一個 enter image description here

這是綁定數據源後綁定到動態列的列的編碼

for (int j = 0; j < i; j++) 
{ 
if (j >= (dataGridView1.Columns.Count - 10)) 
{ 
    DataGridViewColumn col = new DataGridViewTextBoxColumn(); 
col.DataPropertyName = ""; 
col.HeaderText = j.ToString(); 
col.Name = j.ToString(); 
    dataGridView1.Columns.Add(col); 
    } 
} 

所以現在我的真正問題現在開始 現在從數據庫中,我有綁定值這個動態列 這樣的代碼看起來喜歡

foreach (DataGridViewRow dgvr in this.dataGridView1.Rows) 
        { 
         foreach (DataGridViewColumn dgvc in this.dataGridView1.Columns) 
         { 
          string query3 = "select pcs from purchase_sr_details where purchase_details_id='" + dataGridView1.Rows[dgvr.Index].Cells[1].Value + "'"; 


          if (dgvc.Index > 8) 
          { 
           DataTable dt2 = connection.getexecuted(query3); 
           if (dt2.Rows.Count > 0) 
           { 

            for (int i = 0; i < dt2.Rows.Count; i++) 
            { 
             dataGridView1.Rows[dgvr.Index].Cells[""+i+""].Value = dt2.Rows[i]["pcs"].ToString(); 
            } 


           } 


          } 


         } 
        } 

所有工作正常,但我不能給任何的列值retrivew什麼也不顯示檢索生成的動態列,但沒有綁定到值那一個這一個是非常困惑我卡在這一個2天

回答

1

我認爲你的問題是你使用的綁定和非綁定的混合物。如果綁定到datagridview,則不能直接更改單元格。您有兩種選擇:

  1. 更改您的原始查詢,以便您也獲得動態列。讓sql做的工作,而不是你的代碼。這就是我想要做的。
  2. 如果這不可行,您需要獲取網格綁定的數據表,將列添加到它(即DataColumns),並重新綁定到新的數據表。
+0

好的提示這就是我所做的一切 –