日期:2014-05-18  浏览次数:20796 次

datagridview删除多个结果集问题
C# code

            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查询结果集,然后删除不同结果集里的数据
第一个结果集删除正常,第二 ,第三个都不能删除
求指教



------解决方案--------------------
你还是这样吧
C# code

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

------解决方案--------------------
写在一个rowcommand 事件里面好像可以
------解决方案--------------------
for (int i = dataGridView1.SelectedRows.Count; i >= 1; i--)//从下往上删
{
dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[i - 1].Index);
}


你删了一个后,选中的数就少一个,,你这样写是不规范的