读书人

datagridview多行删除有关问题

发布时间: 2012-09-01 09:33:03 作者: rapoo

datagridview多行删除问题
对选中的datagridview中的多行,不能正确删除,只能删除选定的最后一个,究竟问题出在哪?

代码:
private void btnDel_Click(object sender, EventArgs e)
{
int i = this.dataGridView1.SelectedRows.Count;

DialogResult dr = MessageBox.Show("删除后不能恢复,确实想删除这"+Convert.ToString(i) +"个用户信息吗?", "友情提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (dr == DialogResult.Yes)
{
int t = 0;
try
{
for (int j = 0; dataGridView1.SelectedRows.Count > j; )
{
dataGridView1.Rows.Remove(dataGridView1.SelectedRows[0]);
}

DBCon oleCon = new DBCon();
string strSql = "delete from UserInfo where 姓名='" + username + "'";
t = oleCon.Updata(strSql);

if (t == 0)
{
MessageBox.Show("删除失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
string Sql = "select * from UserInfo";
ds = oleCon.Query(Sql);
this.dataGridView1.DataSource = ds.Tables[0];
MessageBox.Show("删除成功!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else
{
return;
}
}



public int Updata(string strSql)
{
int t = 0;
using (OleDbConnection oleCon = new OleDbConnection(strCon))
{
oleCon.Open();
OleDbCommand oleCom = new OleDbCommand();
oleCom.Connection = oleCon;
oleCom.CommandText = strSql;
t = oleCom.ExecuteNonQuery();
}
return t;
}

[解决办法]
把数据库的删除代码放
for (int j = 0; dataGridView1.SelectedRows.Count > j; )
{
dataGridView1.Rows.Remove(dataGridView1.SelectedRows[0]);
}
这里面来.
[解决办法]

C# code
private void btnDelete_Click(object sender, EventArgs e)        {            //判断用户是否选择一行数据,true为没选择,false为选择            if (this.dgv.Rows[this.dgv.CurrentRow.Index].Cells[0].Value.ToString()=="")            {                MessageBox.Show("请选择一项进行删除");            }            else             {                //判断用户是否点击确定按钮,true为点击,false为没有点击                if (MessageBox.Show("确认删除?","提示", MessageBoxButtons.YesNo)==DialogResult.Yes)                {                    //定义数组,用循环赋值                    String[] array = new String[];                    for (int i = 0; i < this.dgv.SelectedRows.Count; i++)                    {                        String str = this.dgv.Rows[this.dgv.SelectedRows[i].Index].Cells[0].Value.ToString();                        String strDelete = "Delete from students where StudentNumber='" + str + "'";                        array[i] = strDelete;                    }                    //遍历数组                    foreach (String str in array)                    {                        this.Update(str);                    }                        //这里写刷新的方法                }            }        } 

读书人网 >C#

热点推荐