首页 > 代码库 > 如何实现DataGridView刷新数据?

如何实现DataGridView刷新数据?

   近期做项目,遇到一个问题,在DataGridView中查询数据,进行操作后,仍旧显示原来未更新数据库的数据列表,这种情况很容易让人误解是否已经更新了数据。

   我解决这个问题,有两种方式:

   1、重新生成新窗口

    

Check check = new Check();
            this.Close();
            check.Show();

Check 是我们装载列表的窗体。

   2、设置一个按钮,点击它触发一个事件,让后将数据源滞空,重新加载数据源。重新发送请求数据库:

 MessageCheckdataGridView.DataSource = null;
            this.MessageCheckdataGridView.Refresh();
          
            #region 初始化表格
            //创建数据表
            dataTable = new DataTable();
            dataTable.TableName = "record"; //这里的表名,字段名,必须要和服务器端的一致
            //dataTable.Columns.Add("Name", typeof(String));
            //dataTable.Columns.Add("Sex", typeof(String));
            //dataTable.Columns.Add("Nation", typeof(String));

            //初始化绑定控件
            bindingSource = new BindingSource();
            bindingSource.DataSource = dataTable;

            //DataTableX.TableName = "Remote";
            //DataSetX.Tables.Add(DataTableX);
            //RemoteBindingSource.DataSource = DataSetX;
            //RemoteBindingSource.DataMember = "Remote";

            //初始化表格
            MessageCheckdataGridView.AutoGenerateColumns = false;
            MessageCheckdataGridView.DataSource = bindingSource;
            requestData();


 private void requestData()
        {
            #region 变量说明
            String url;
            String baseUrl;
            //HttpWebRequest request;
            //HttpWebResponse response;

            HttpRequest asyncRequest;
            //Encoding encode
            Byte[] buffer;
            String paramters;
            #endregion

            #region 请求数据

            //处理服务器地址
            baseUrl = Global.serverBaseUrl;

            //生成一个请求用的url,指定的方法是按村选
            //url = baseUrl + "?_rtype=ajax&_class=RM.Webapp.Zuzhibuclient.PartyBasicInfo&_method=updateByCun";
            url = baseUrl + "?_rtype=ajax&_class=RM.Webapp.Zuzhibuclient.MessageCheck&_method=SelectMessageCheck";

            //现在是以查询字符串的方式,以可以xml的格式,只要服务器端和客户端协调好就可以
            paramters = "userid=" + Global.userID + "&region=" + Global.userRegion;
            buffer = Encoding.UTF8.GetBytes(paramters);

            //准备异步请求
            asyncRequest = new HttpRequest();
            //设置异步请求后的处理程序,这个是必须要的
            asyncRequest.requestCompleted += new RequestCompleteEventHandler(SelectMessageCheck_requestCompleted_handler);
            //发出请求
            asyncRequest.Request(url, buffer, Encoding.UTF8);

            #endregion

        }

此中请求方式是自己写的,不再叙述,只是说明实现的方式。