2012-11-13 63 views
0

我面對的問題對我來說似乎很簡單,但我無法推過這個思維障礙。將行添加到datagridview時,除最後一行外沒有插入任何值

爲了說明我的情況好一點:我的價值觀從MDF數據庫(羅斯文)閱讀並傳遞聯繫人姓名欄成拆分值轉換成姓氏和名字一個類的方法。然後它將這些傳遞回來,我嘗試將它們添加到我創建的適當列下的DataGridView。

我的問題是,是,這個當前的代碼,它被添加行對每一列,但他們都是空白的除了最後一個,這顯示了在表中列倒數第一和最後一個名字。

我覺得由於某種原因,顯示空白的行可能被覆蓋,但我不確定。我在正確的軌道上嗎?

這裏是我的代碼:

  conn.Open(); 

     SqlDataReader reader = command.ExecuteReader(); 

     searchDataGridView.AllowUserToAddRows = true; 

     Customer cust = new Customer(); 

     searchDataGridView.ColumnCount = 2; 
     searchDataGridView.Columns[0].Name = "First Name"; 
     searchDataGridView.Columns[1].Name = "Last Name"; 

     int index = this.searchDataGridView.Rows.Count; 

      while (reader.Read()) 
      { 

       string customerid = reader.GetString(0); 
       string contactname = reader.GetString(2); 

       cust.NameSplit(contactname); 

       this.searchDataGridView.Rows.Add(); 

       DataGridViewRow r = searchDataGridView.Rows[rowIndex]; 

       r.Cells["First Name"].Value = cust.FirstName; 
       r.Cells["Last Name"].Value = cust.LastName; 
      } 

儘管這看起來像一口給我,我希望我解釋清楚就好了。如果您需要更多信息,請讓我知道,我會很樂意提供。謝謝:)

回答

2

您在添加行時沒有更新rowIndex變量。此行需要修復:

rowIndex = this.searchDataGridView.Rows.Add(); 
+0

一個簡單的解決方案!感謝您的洞察力!我將rowIndex刪除移到了循環外部,並在循環中增加。恰恰是我腦海中的一切。再次感謝你! – user1721879

相關問題