删除DataGridView选中行并更新数据库

DataGridView在与数据库打交道时会经常出现,也很实用。通过DataGridView对数据库进行更改和查询都比较方便。
这里我们需要用DataGridView数据,并通过选中行将数据从数据库中删除。
其原理是把选中记录的主键提取出来,然后传给实体,通过实体给D层传值实现对数据库的修改。

            DialogResult result = MessageBox.Show("是否要修改当前行中单元格的内容?", "提示信息", MessageBoxButtons.YesNo,        MessageBoxIcon.Question);
            if (this.dataGridView.SelectedRows.Count > 0)
                if (result == DialogResult.Yes)
                    //修改当前行单元格的内容
                    Entity.UserInfo deleteuser = new Entity.UserInfo();
                    for (int i = this.dataGridView.SelectedRows.Count; i > 0; i--)
                        deleteuser.UserID = Convert.ToInt32(dataGridView.SelectedRows[i - 1].Cells[0].Value);
                        if (deleteuser.UserID == Convert.ToInt32(Entity.StaticUser.UserName))
                            MessageBox.Show("当前用户已登录,不能删除!", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                            return;
                        //调用后台方法删除数据库
                        Facade.frmAdmUserFacade facade = new Facade.frmAdmUserFacade();
                        bool resul = facade.DeleteUser(deleteuser);
                        //删除datagridview表中行
this.dataGridView.Rows.RemoveAt(dataGridView.SelectedRows[i - 1].Index);
                    MessageBox.Show("删除成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Question);
                MessageBox.Show("未选中单元格", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                return;

这样很好用,就是一点不方便,这么写只能在绑定数据源的前提下删除datagridview,当我们把List集合的值赋给datagridview显示再用以上代码删除就会报如下错误

所以,这个时候代码就得改写了:
在List中删除数据,后重新绑定控件,
因为还要求删除数据库中数据,所以,直接获取选中行的第一列id,删除数据库中数据,然后调用combobox重新获取数据库中信息即可成功显示删除后的列表。

            DialogResult result = MessageBox.Show("是否要修改当前行中单元格的内容?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (this.dataGridView.SelectedRows.Count > 0)
                if (result == DialogResult.Yes)
                    //修改当前行单元格的内容
                    Entity.UserInfo deleteuser = new Entity.UserInfo();
                    for (int i = this.dataGridView.SelectedRows.Count; i > 0; i--)
                        deleteuser.UserID = Convert.ToInt32(dataGridView.SelectedRows[i - 1].Cells[0].Value);
                        if (deleteuser.UserID == Convert.ToInt32(Entity.StaticUser.UserName))
                            MessageBox.Show("当前用户已登录,不能删除!", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                            return;
                        //调用后台方法删除数据库
                        Facade.frmAdmUserFacade facade = new Facade.frmAdmUserFacade();
                        bool resul = facade.DeleteUser(deleteuser);
                        //删除datagridview表中行
//this.dataGridView.Rows.RemoveAt(dataGridView.SelectedRows[i - 1].Index);
                    //重新获取数据库
comboLevel_SelectedIndexChanged(sender, e);
                    MessageBox.Show("删除成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Question);
                MessageBox.Show("未选中单元格", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                return;

做的修改是for循环里删除了一句话,并在循环完成后加了一行语句。

然后成功!

删除DataGridView选中行并更新数据库DataGridView在与数据库打交道时会经常出现,也很实用。通过DataGridView对数据库进行更改和查询都比较方便。 这里我们需要用DataGridView数据,并通过选中行将数据从数据库中删除。 其原理是把选中记录的主键提取出来,然后传给实体,通过实体给D层传值实现对数据库的修改。源码: DialogResult r 核心代码: If MsgBox("您确定要删除选择的数据吗? ", MsgBoxStyle.Question + MsgBoxStyle.OkCancel, "温馨提示") = 1 Then Dim str As String = String.Empty Me.DataGridView1.ReadOnly = True Dim tempIndex As Integer = DataGridView1.FirstDisplayedScrollingRowIndex For i As Integer = Me.DataGridView1.Rows.Count - 1 To 0 Step -1 Dim cbx As DataGridViewCheckBoxCell = DirectCast(Me.DataGridV DataGridView导入一个xls表格,如下图: 现在想将以上表格数据插入数据库,之前是想每成功插入一数据就在DataGridView删除(即让这不显示), 没有成功插入的不删除(即显示在DataGridView里) 1 foreach (Data... 一、实现的功能:可以删除或者多数据,并在删除前提醒是否确定进删除! DialogResult RSS = MessageBox.Show(this,"确定要删除选中数据码?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning);
1、在DataGridView中添加查询,写上查询文本 2、选中删除,需获取要删除的条件 user.UserID = this.dataGridView1.SelectedCells[0].Value.ToString();这里的SelectedCells[0]就是对应的账号的数据 3、删除成功后,DataGridView自动除刚删除 dataGridView1.Rows.Remo
欲将下图表格中的若干数据在界面上删除,同时相应删除MySQL内的数据。本文所述的方法适用于单或多(相邻或分散)数据删除~~~ 解决思路+代码实现 1.编写表内容删除的MySQL语句 2.获取鼠标选中的编号 3.通过一个for循环依次将选中数据删除 //定义计数值 int count = 0; //连接数据库,我这里连接数据库的方
一、无条件的删除 默认时,DataGridView是允许用户进删除操作,选中删除,按Delete键可以删除,该操作没有任何提示(只是删除界面显示的数据,不会真实删除数据库中的数据)。如果设置DataGridView对象的AllowUserToDeleteRows属性为False,用户将被禁止删除。 示例:禁止DataGridView删除 1 this.dgv_PropDemo....