有关绑定datagrid的问题,高手快来啊~~~~~~~~~ 在winform中绑定datagrid,点击修改弹出一个窗口,修改完数据后不能及时刷新到datagrid中,重新绑定也不能显示,Refresh也没用 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我用的是command对象,然后Command.ExecuteNonQuery();数据没更新,重新FILL也不更新,重新连接数据库才会显示更新?这是为什么呢? 你绑定的是什么数据?修改过后要用数据的确认修改在DataGrid中才能显示出来。如是dataset则是dataset.acc后面的记不住了。这样确认修改后就行了。 可以QQ联系一下。7735820,验证:csdn shaun1981(打破砂锅问到底) 你的问题解决了吗?我也要这个问题的答案 winform里,datagrid中的焦点只有换行以后才会更新到datatable里面,而当前cell只有失去焦点以后才能取到cell里面的值 把修改的数据update到DataSet里面,然后重新绑定。TO shaun1981(打破砂锅问到底):把你的command string放到QA里面看看有没有执行 你修改dataset后要用(假设dataset名为ds1)ds1.AcceptChanges(); 你用程序做了任何修改dataset数据不用ds1.AcceptChanges();是看不到效果的。 点击修改弹出一个窗口,修改完数据后不能及时刷新到datagrid中你在弹出窗口时要把dataset传进去。修改完后再ds1.AcceptChanges(); lyymax() 在winform里面dataset有update方法吗?我怎么找不到 DataSet都有AcceptChange()方法,调用此方法就能显示到DataGrid中了 DataRow newRow = this.dataset1.Tables["studentInfo"].NewRow(); newRow["StudentID"] = insertDialog.numberText.Text; newRow["FirstName"] = insertDialog.firstText.Text; newRow["LastName"] = insertDialog.lastText.Text; this.dataset1.Tables["studentInfo"].Rows.Add(newRow); MessageBox.Show("插入数据成功!");这个是我直接对TABLE操作,可以马上显示更新,但是如果用COMMAND对象插入数据不能马上更新DATAGRID,谁知道用什么方法可以执行COMMAN命令后马上更新DATAGRID呢? AcceptChange()这个方法也有调用过就是不刷新 可以了,只要在FILL的第2个参数指定另一个新的表的名字(和DATAGRID正在显示的表名不能一样),然后在FILL方法后再把DATAGRID和这个新的表绑定,执行SQL的查询和插入等语句命令后就可以马上更新了。 string insertCmd = "INSERT into studentInfo(StudentID,FirstName,LastName) values(@studentID,@firstName,@lastName)"; OleDbCommand insertCommand = new OleDbCommand(insertCmd,m_dbConnection); //使用Command对象的Parameters集合填充命令的值 insertCommand.Parameters.Add("@studentID",OleDbType.VarChar,6); insertCommand.Parameters["@studentID"].Value=insertDialog.numberText.Text; insertCommand.Parameters.Add("@firstName",OleDbType.VarChar,6); insertCommand.Parameters["@firstName"].Value=insertDialog.firstText.Text; insertCommand.Parameters.Add("@lastName",OleDbType.VarChar,6); insertCommand.Parameters["@lastName"].Value=insertDialog.lastText.Text; insertCommand.ExecuteNonQuery(); DataSet ds = new DataSet(); ds.AcceptChanges(); m_dbDataAdapter.Fill(ds,"insert"); m_dgTPDDetail.SetDataBinding(ds,"insert"); 文本显示问题 读取ini文件到字符串数组时,读到中间遇上某键名是空值咋办? not in不起作用,大家帮忙看一下 sqlHelper的使用(新手提问) 求实现一个简单的功能,急! ASP.NET如何显示消息窗口,象showmessage()那样? 怎么判断本地文件和网络文件是否存在 vs2010 的MSDN 如何将string类值转换成表达式?问的不够专业 多线程之自定义线程问题 望大虾们指点迷津 textbox一个小问题 有没有办法能知道DataTable里的字段属于数据库中的什么数据类型? 就是找出是SqlDbType的值.
TO shaun1981(打破砂锅问到底):
把你的command string放到QA里面看看有没有执行
你用程序做了任何修改dataset数据不用ds1.AcceptChanges();是看不到效果的。
你在弹出窗口时要把dataset传进去。修改完后再ds1.AcceptChanges();
newRow["StudentID"] = insertDialog.numberText.Text;
newRow["FirstName"] = insertDialog.firstText.Text;
newRow["LastName"] = insertDialog.lastText.Text;
this.dataset1.Tables["studentInfo"].Rows.Add(newRow);
MessageBox.Show("插入数据成功!");这个是我直接对TABLE操作,可以马上显示更新,但是如果用COMMAND对象插入数据不能马上更新DATAGRID,谁知道用什么方法可以执行COMMAN命令后马上更新DATAGRID呢?
OleDbCommand insertCommand = new OleDbCommand(insertCmd,m_dbConnection);
//使用Command对象的Parameters集合填充命令的值
insertCommand.Parameters.Add("@studentID",OleDbType.VarChar,6);
insertCommand.Parameters["@studentID"].Value=insertDialog.numberText.Text;
insertCommand.Parameters.Add("@firstName",OleDbType.VarChar,6);
insertCommand.Parameters["@firstName"].Value=insertDialog.firstText.Text; insertCommand.Parameters.Add("@lastName",OleDbType.VarChar,6);
insertCommand.Parameters["@lastName"].Value=insertDialog.lastText.Text;
insertCommand.ExecuteNonQuery();
DataSet ds = new DataSet();
ds.AcceptChanges();
m_dbDataAdapter.Fill(ds,"insert");
m_dgTPDDetail.SetDataBinding(ds,"insert");