根据复选框的值更新datagridview-循环所有行的复选框,并检查是否已选中任何复选框

时间:2018-09-12 13:46:26

标签: c# winforms datagridview

所以我有这个DataGridView,在该列上有三列,该日期和用户名是从我的SQL Server数据库中获取的。现在,在第一列中,我们在Windows应用程序设计器中有一个显示为CheckBox的位字段。

因此,我想,在单击更新按钮时,我的程序要检查是否已选中任何复选框,如果复选框已被选中,则更新逻辑将触发。

如果未选中任何复选框,则应该抛出错误。

   public void Update_button_Click(object sender, System.EventArgs e) {


//Check all the checkbox in the first column and if none is selected throw error
            If(boolean(checkbox.Row[0]) == true)  { //This is an example if-else condition code which i expect 

     string msg = String.Format("Row: {0}, Column: {1}",
                 dataGridView1.CurrentCell.Value,
                 dataGridView1.CurrentCell.ColumnIndex);
                MessageBox.Show(msg, "Current Cell");
                dataadapter.Update((DataTable) bindingSource1.DataSource);
                foreach(DataGridViewRow row in dataGridView1.Rows) {
                 if (Convert.ToBoolean(row.Cells[0].Value)) {
                  var myvalue = dataGridView1.Rows[row.Cells[0].RowIndex].Cells[dataGridView1.Columns["dummy_id"].Index].Value.ToString();

                  var connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MYConnectionString"].ConnectionString;
                  using(var connection = new SqlConnection(connectionString)) {
                   connection.Open();
                   using(var command = new SqlCommand(@ "[dbo].[SP]", connection)) {
                    command.CommandType = CommandType.StoredProcedure;
                    command.Parameters.Add("@id", SqlDbType.Int).Value = myvalue;
                    command.ExecuteNonQuery();

                   }
                  }
                 }

                }
                MessageBox.Show("SAVED");
                selected_user_data();

               }
// If no checkbox has been selected throw error.
               Else { 
                Messagebox.show("Please select checkbox")
               }

1 个答案:

答案 0 :(得分:0)

我之前遇到过这个问题,我的解决方案是添加我的所有GUI元素(在您的情况下为复选框,在我的情况为文本框),以使其易于迭代。然后,您可以检查其状态:

sess = tf.Session(graph=graph1)