private void btnDel_Click(object sender, EventArgs e)
        {
            try
            {
                int selectCount = 0;
                int rowIndex = -1;
                foreach (DataGridViewRow item in gridUserList.Rows)
                {
                    rowIndex++;
                    if (item.Cells["chk"].Value != null && (bool)item.Cells["chk"].Value)
                    {
                        selectCount++;
                        break;
                    }
                }                if (selectCount == 0)
                {
                    CommonFun.Message_ExclamationOk("请选择要删除信息的用户");
                    return;
                }                string User_id = gridUserList.Rows[rowIndex].Cells["USER_ID"].Value.ToString();
                BLL_MS_USER user = new BLL_MS_USER();
                user.Delete(User_id);
                CommonFun.Message_Information("删除成功");
            }
            catch (Exception ex)
            {
                throw ex;
            }
我写了删除方法,当在gridview中删除时,提示成功,但那条数据还在gridview中,但数据库已经删除掉了,把窗口关掉再打开,gridview中这条数据就没了. 当点击删除按钮时,怎样让这条数据立即在Datagridview中就删除掉,求助高手

解决方案 »

  1.   

    数据库删除成功之后,调用表格数据源,通常是DataSet或DataTable,删除对应的行,并执行接受改变
      

  2.   

    BLL_MS_USER user = new BLL_MS_USER();
    user.Delete(User_id);
    在这里将你的gridUserList的数据源清空 ,在重新绑定 不就可以嘛
    CommonFun.Message_Information("删除成功");
      

  3.   

    (dataGridView.Rows[i].DataBoundItem as DataRowView).Delete();
      

  4.   

    因为你点击按钮的时候删除的是数据库中的数据,你需要在点击事件结束前,再次把数据库中的数据(被删除后的数据)从新填充到DATAGRIDVI的数据源中(DATASOURCE)
      

  5.   

    重新再绑定一次gridUserList
    数据不就刷新了;
      

  6.   

    直接用键盘上面的Delete就可以删除选择的那一行,记录选定的行的标号,然后在DataGridView里面的有个删除的事件里面更新数据库
      

  7.   

     gridUserList.Rows.RemoveAt(rowIndex);
    已经解决,谢谢,大家