0

I have 3 DatagridviewCheckboxCell and I used this code to check them:

foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            DataGridViewCheckBoxCell chk1 = (DataGridViewCheckBoxCell)row.Cells["Column6"];
            DataGridViewCheckBoxCell chk2 = (DataGridViewCheckBoxCell)row.Cells["Column7"];
            DataGridViewCheckBoxCell chk3 = (DataGridViewCheckBoxCell)row.Cells["Column8"];

            string commande2 = "SELECT id_pres from Fonct_Prest where id_fonc = @id";
            OleDbCommand cmd2 = new OleDbCommand(commande2, con);
            cmd2.Parameters.AddWithValue("@id", row.Cells["Code"].Value);
            dt2.Load(cmd2.ExecuteReader());

            for (int i = 0; i < dt2.Rows.Count; i++)
            {
                if (dt2.Rows[i][0].ToString() == "1")
                {
                    chk1.Value = true;
                }
                if (dt2.Rows[i][0].ToString() == "2")
                {
                    chk2.Value = true;
                }
                if (dt2.Rows[i][0].ToString() == "6")
                {
                    chk3.Value = true;
                }
            }
            cmd2.Parameters.Clear();
            dt2.Rows.Clear();
        }

This code works fine but in the first row of the datagridview the checkboxes are not checked. where is the error in my code?

user4340666
  • 1,453
  • 15
  • 36

1 Answers1

0

If you know column names, you cold try this code.

    private void button2_Click(object sender, EventArgs e)
    {
        for(int i = 0; i < dataGridView1.RowCount; i++)
        {
            //Set defined value
            //dataGridView1.Rows[i].Cells["Column2"].Value = true;

            //toggle value from checked to unchecked.
            dataGridView1.Rows[i].Cells["Column2"].Value = !Convert.ToBoolean(dataGridView1.Rows[i].Cells["Column2"].Value);
        }
    }