2015-09-25 46 views
0

我想要一個選定的datagridview行到數據表。發送選定的datagridview到數據表

通過以下代碼,我可以發送selectedrow,但是當嘗試向數據表發送第二行時,它會添加一個空行,但會覆蓋數據表中的第一行。

for (int i = 0; i < dataGridview.SelectedRows.Count; i++) 
     { 
      DT1.Rows.Add(); 

      for (int j = 0; j < dataGridview.Columns.Count; j++) 
      { 
       DT1.Rows[0][j] = dataGridview.SelectedRows[i].Cells[j].Value; 
      } 
     } 

正如預期的那樣進入上索引0的行,所以我嘗試如下因素讓最後一排

for (int j = 0; j < dataGridview.Columns.Count; j++) 
      { 
       int rowcount = DT1.Rows.Count; 
       DT1.Rows[rowcount][j] = dataGridview.SelectedRows[i].Cells[j].Value; 
      } 

這給了我,行不存在錯誤,應該是什麼解決方案添加第二行而不是替換?

+0

數組是基於0的,所以不要訪問行[rowcount],訪問row [rowcount-1]到最後一行。 – Les

+0

DT1如何定義? – Les

+0

謝謝Les,這個很好用,也試過int rowcount = CarProfile.Rows.Count -1;但這是行不通的。你可以發佈anwser,所以我可以給你的學分? – PandaNL

回答

1

你必須在你的代碼其它問題開始。也就是說,如果您的用戶在對此代碼的不同調用中選擇相同的行,則會插入重複項。

修復rowcount,將其更改爲rowcount-1。然後檢查你的設計。想出一種防止重複插入的方法(除非你真的想要這樣做)。

0
DT1.Rows[i][j] = dataGridview.SelectedRows[i].Cells[j].Value,ToString(); 

試試這個!你的外循環已經在跟蹤你的表中的行,所以不需要混淆行計數。

1

你有rowcount

一個問題行數爲您提供總額不排,但rowindex總是0 即rowindex = rowcount-1 使用本

for (int j = 0; j < dataGridview.Columns.Count; j++) 
{ 
    int rowcount = DT1.Rows.Count; 
    DT1.Rows[rowcount-1][j] = dataGridview.SelectedRows[i].Cells[j].Value; 
}