在datagridview里面筛选数据后,再删除数据中的一行后刷新列表,怎么使列表是筛选后的刷新数据?

解决方案 »

  1.   

    用代码实现哈,是个按钮的事件。
    datagridview 是只读和不允许用户添加
      

  2.   

    我做的重新绑定数据后,不是筛选后的刷新数据,是Load的数据
    怎么办?
      

  3.   

    1,数据存入数据集DataSet中,DGV绑定的实际是内存中的表。你从数据视图中删除行,实际操作的是内存中的数据。2,如果你删除了数据,但是没有更新到数据库,那么重新绑定数据源后还是不会显示删除的。
      

  4.   


    不太明白你的意思,你想删除数据后,将操作更新到数据库,然后即使重新运行程序也显示删除后的数据吗?提示:使用SqlCommandBuilder更新数据库,然后重新绑定即可。
      

  5.   

    string sql = string.Format("delete from MobileInfo where MobileID='{0}'", Convert.ToString(dgvShuJu.SelectedRows[0].Cells["MobileID"].Value));
                try
                {
                    SqlCommand comm = new SqlCommand(sql, DBHelper.con);
                    DBHelper.con.Open();
                    int a = comm.ExecuteNonQuery();
                    if (a == 1)
                    {
                        MessageBox.Show("删除成功!");
                        set.Tables["MobileInfo"].Clear();
                        frmMobileInfo_Load(sender, e);   
                        //load是查全部数据的,这里改成什么才是查筛选后的数据
                    }
                    else
                    {
                        MessageBox.Show("删除失败");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    DBHelper.con.Close();
                }
      

  6.   

     frmMobileInfo_Load(sender, e);   
      //load是查全部数据的,这里改成什么才是查筛选后的数据
      }自己写个查询方法,将查询语句传入方法,
    调用的时候只要把sql语句传入即可,然后绑定数据就ok了,如写个
     private void Select(string MYSQL)
            {}load时候
    string sql = string.Format("delete from MobileInfo where MobileID='{0}'", Convert.ToString(dgvShuJu.SelectedRows[0].Cells["MobileID"].Value));
    Select(sql)就行了,删除后在调用一下,该下查询语句。
      

  7.   

    比较直白的方法就是自己控制查询数据填充DataGridView。
    相当于自己实现一套MVC。我估计你是额外做了些过滤,比如基于某些关键字,等等。我建议这些过滤条件做封装,任何操作后更新过滤条件,重新加载数据更新DataGridView
      

  8.   

    winform跟webform的机制截然不同,所以它在更新时用不着“刷新、重新绑定”这类概念。比如datagridview自身插入、更新、删除行,或者它绑定的ObservableCollection<T>数据中有个别行改变了,它就会重新绘制改变的行。