近期做项目,遇到一个问题,在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 + "®ion=" + Global.userRegion; buffer = Encoding.UTF8.GetBytes(paramters); //准备异步请求 asyncRequest = new HttpRequest(); //设置异步请求后的处理程序,这个是必须要的 asyncRequest.requestCompleted += new RequestCompleteEventHandler(SelectMessageCheck_requestCompleted_handler); //发出请求 asyncRequest.Request(url, buffer, Encoding.UTF8); #endregion }
此中请求方式是自己写的,不再叙述,只是说明实现的方式。
如何实现DataGridView刷新数据?
时间: 2024-11-03 15:06:06