2012-09-24 56 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 { } 
}