if (dataGridView1.SelectedRows.Count > 0)
            {
                DialogResult result = MessageBox.Show("确定要删除选中项吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
                if (result == DialogResult.OK)
                {
                    for (int i = dataGridView1.SelectedRows.Count; i >= 1; i--)//从下往上删
                    {
                        dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[i - 1].Index);
                    }
                    if (radioButton1.Checked == true) 
                    {
                        SqlCommandBuilder scb = new SqlCommandBuilder(sa);
                        sa.Update(ds.Tables["DATAWEI"]);
                    }
                    else if (radioButton2.Checked == true)
                    {
                        SqlCommandBuilder scb = new SqlCommandBuilder(sa);
                        sa.Update(ds.Tables["MAINDATAWEI"]);
                    }
                    else 
                    {
                        SqlCommandBuilder scb = new SqlCommandBuilder(sa);
                        sa.Update(ds.Tables["OLDDATAWEI"]);
                    }
                    
                }
            }根据radioButton查询结果集,然后删除不同结果集里的数据
第一个结果集删除正常,第二 ,第三个都不能删除
求指教

解决方案 »

  1.   

    你还是这样吧            for (int i = dataGridView1.Rows.Count - 1; i >= 0; i--)
                {
                    if (dataGridView1.Rows[i].Selected)
                    {
                        //删除
                    }
                }
      

  2.   

    写在一个rowcommand 事件里面好像可以
      

  3.   

     for (int i = dataGridView1.SelectedRows.Count; i >= 1; i--)//从下往上删
                        {
                            dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[i - 1].Index);
                        }
    你删了一个后,选中的数就少一个,,你这样写是不规范的