How to get IDs of only checked rows of a datagridview

c#, checkbox, database, datagridview

Solution

Late to the party. I had the same issue with trying to get the checkbox column by name, use the index instead. Here is a linq example assuming the checkbox is column 0 and the stored values for TrueValue and FalseVale are true and false respectively.

        var checkedRows = from DataGridViewRow r in gvSubjectsOpted.Rows
            where Convert.ToBoolean(r.Cells[0].Value) == true
            select r;

        foreach (var row in checkedRows)
        {
            olist.Add(row.Cells["SubjectId"].Value.ToString());
        }

Problem

I have a datagridview that contains list of subjects populated from Subject table from database.Columns include - Select(checkbox), - SubjectId, - SubjectName, - SubjectGroup. Now I want if a user Selects on any of the desired rows, the corresponding SubjectId's should be added to a List. I have made and inserted into the desired table in the database. The problem is that the new column of checkboxes I have added to this datagridview is not being detected. My code is: ``` foreach (DataGridViewRow row in gvSubjectsOpted.Rows) { if (Convert.ToBoolean(gvSubjectsOpted.SelectedRows[0].Cells["SelectId"].Value=true)) { olist.Add(gvSubjectsOpted.SelectedRows[0].Cells["SubjectId"].Value.ToString()); } } ```

Original source

Related problems