使用复选框通过c#中的datagridView插入多个数据

使用复选框通过c#中的datagridView插入多个数据,c#,checkbox,datagridview,C#,Checkbox,Datagridview,我这里有这段代码,我希望在选中复选框后通过datagridview向数据库插入多个学生标记。下面代码的问题是只插入第一个选中行中的数据。如何确保插入每个选定行 public override void Savebtn_Click(object sender, EventArgs e) { int select; for (int i = 0; i <= dataGridView1.Rows.Count -1; i++) {

我这里有这段代码,我希望在选中复选框后通过datagridview向数据库插入多个学生标记。下面代码的问题是只插入第一个选中行中的数据。如何确保插入每个选定行

    public override void Savebtn_Click(object sender, EventArgs e)
    {
        int select;
        for (int i = 0; i <= dataGridView1.Rows.Count -1; i++)
        {
            DataGridViewRow row = dataGridView1.Rows[i];
            if((bool)row.Cells["CheckBoxColumn"].FormattedValue == true)
            {
                select++;
            }

        }
        if(select == 0)
        {
            MainClass.showMSG("Please Select at least one Student", "Error", "Error");
        }
        for (int i = 0; i < dataGridView1.Rows.Count -1; i++)
        {
            DataGridViewRow row = dataGridView1.Rows[i];

            if ((bool)row.Cells["CheckBoxColumn"].FormattedValue == true)
            {
              obj.st_InsertResults(Convert.ToInt32(row.Cells["stdIDGV"].Value.ToString()), 
               row.Cells["StdNameGV"].Value.ToString(),
               Convert.ToInt32(row.Cells["EngGV"].Value.ToString()));
                MainClass.showMSG(" Data added successfully.", "Success....", "Success");
                MainClass.disable_reset(panel1);
                dataGridView1.DataSource = null;

            }
        }

    }
public override void Savebtn\u单击(对象发送方,事件参数e)
{
int选择;

对于(inti=0;i为什么要将数据源设置为null

dataGridView1.DataSource = null;

尝试删除这一行,应该行!

谢谢,虽然这会产生新问题,但仍然有效。插入后如何引用行?因为我最初使用了空数据源。我相信目标是迭代所有行并对其进行操作。为什么需要刷新行?循环应该自行完成并添加行。您可以将最后三行移到循环外(在其中设置布尔值),并在工作完成后显示消息。