2012-09-24 182 views
2
private void dataGridView1_CellContentClick 
    (object sender,DataGridViewCellEventArgs e) 
    { 
     int i,j; 
     i = dataGridView1.CurrentCell.RowIndex; 
     j = dataGridView1.CurrentCell.ColumnIndex; 
     txtcellvalue.Text = dataGridView1.Rows[i].Cells[j].Value.ToString(); 
    } 

    private void Setvaluebutton_Click(object sender, EventArgs e) 
    { 
     int i = 0; 
     //foreach(DataGridViewRow datagridviewrow in dataGridView1.Rows) 
     //{ 
      i = dataGridView1.SelectedCells[0].RowIndex; 
      string study = dataGridView1.Rows[i].Cells[2].Value.ToString(); 
      txtcellvalue.Text = dataGridView1.Rows[i].Cells[3].Value.ToString(); 
      txtcellvalue1.Text = dataGridView1.Rows[i].Cells[4].Value.ToString(); 
      string unit = dataGridView1.Rows[i].Cells[5].Value.ToString(); 
      i = i + 1; 
      DialogResult dr = MessageBox.Show 
      ("Would like to update the click yes!!", 
      "values", MessageBoxButtons.YesNo); 
      if (dr == DialogResult.Yes) 
      { 
       db.OpenDB(); 
       string query = "Update [table] set [status]=" + study + ", 
       [limit]='" + txtcellvalue.Text + "' ,[limit2]='" + txtcellvalue1.Text 
       + "',[unit]='" + unit + "' where [tno]=" + i + ";"; 
       db.Update(query); 
       DatagridviewMethod(); 
       db.CloseDB(); 

      } 
      else 
      { 
       DatagridviewMethod(); 
      } 
     // }       

    } 

這裏更新在DataGridView所有多個選定單元格的值什麼,我試圖做的顯示在顯示所有的datagridview中的值datagridview.after所有的數據庫表中的值,試圖更換電池datagridview中的值,我可以編輯並替換另一個值,但在更新它時,它將一次更新datagridview中只有一行值而不是所有其他行(所有選定行)的值。 請給我任何建議嗎?不通過點擊設置按鈕

回答

3

如果我正確理解你的代碼,每當你運行該方法時,它只在一行上執行,因爲變量[i]永遠不會被更新。即使你選擇了多行,它仍然保持不變,因爲[i]將始終指向你當前或「活動」行(在代碼中任何地方都不會改變)。爲了解決這個問題,請嘗試迭代SelectedRows集合,如

foreach (DataGridViewRow dgvrow in dataGridView1.SelectedRows) { 
    string study = dgvrow.Cells[2].Value.ToString(); 
    txtcellvalue.Text = dgvrow.Cells[3].Value.ToString(); 
    txtcellvalue1.Text = dgvrow.Cells[4].Value.ToString(); 
    string unit = dgvrow.Cells[5].Value.ToString(); 

    if (MessageBox.Show("Would like to update the click yes!!", 
     "values", MessageBoxButtons.YesNo) == 
     System.Windows.Forms.DialogResult.Yes) { 
      // ETC... 
    } 
    else { } 
}