2017-07-22 52 views
-1

我有兩個datagridview。 datagridview1和datagridview2。當我從datagridview1添加產品到datagridview2時,datagridview1中的產品數量將傳輸到datagridview2。現在,當我從datagridview2中刪除一個產品時,我需要它將數量傳回datagridview1。對象不包含'cells'錯誤的定義

enter image description here

有人幫我過,但現在即時收到這個錯誤。 enter image description here

private int FindRowIndexByID(string id) 
    { 
     for (int i = 0; i < dgvPOSproduct.Rows.Count; i++) 
     { 
      if (dgvPOSproduct.Rows[i].Cells[0].Value.ToString() == id) 
      { 
       return i; 
      } 
     } 

     return -1; 
    } 

    private void btnRemove_Click(object sender, EventArgs e) 
    { 

     foreach (var row in dgvPOScart.SelectedRows) 
     { 
      // Get the row in dgvProducts and the quantity he'll gain back 
      var productRow = dgvPOSproduct.Rows[FindRowIndexByID(row.Cells[0].Value)]; 
      int qtyToAdd = Convert.ToInt32(row.Cells[4].Value); 

      // Add the quantity back 
      productRow.Cells[5].Value = Convert.ToInt32(productRow.Cells[5].Value) + qtyToAdd; 
     } 

    } 

回答

1

在你的for循環改變var與實際類型,這是DataGridViewRow。 是這樣的:
foreach (DataGridViewRowrow in dgvPOScart.SelectedRows){ ....

+0

我已經試過了,先生,但我得到一個錯誤。在第7行按鈕刪除 ((row.Cells [0] .Value)];)單擊它說「不能從對象轉換爲字符串」 – FutureDev

+0

row.Cells [0] .Value'返回一個對象類型,但是您的'FindRowIndexByID'函數需要一個字符串,你需要像這樣轉換它:'row.Cells [0] .Value.ToString()' –

+0

修正它在tostring中的轉換。謝謝先生。 – FutureDev

相關問題