我要实现的功能的功能大致如下:datagrid(winform)和数据源绑定后,当鼠标点中某行时,相关信息可以显示在如textbox中,一个数据字段对应一个textbox,当修改textbox内容,数据库和datagrid都能更新。现在的问题是,数据库到是更新了,但是datagrid上却没有改变,是否还需要加什么语句?
谢谢datagrid绑定到dataset:
dgdPeople.SetDataBinding(People,"People");//dgdPeople为datagrid对象
BindingManagerBase bm = dgdPeople.BindingContext[dgdPeople.DataSource, dgdPeople.DataMember];点击修改按钮时的代码如下:
DataRow curClassCosTeaRow = ((DataRowView)bm.Current).Row;
curClassCosTeaRow.BeginEdit();
curClassCosTeaRow["NAME"] = NAME;//该NAME即从textbox中取得的值
curClassCosTeaRow.EndEdit();
dgdPeople.SetDataBinding(People,"People");
DoUpdate();//该方法用于更新数据库

解决方案 »

  1.   

    用currencymanager刷新一下试试。
      

  2.   

    调用AcceptChanges() 方法试试看吧
      

  3.   

    datagrid.datasource = null;
    datagrid.datasource = 更新后的数据库
    datagrid.binding();
      

  4.   

    curClassCosTeaRow 是更新了,((DataRowView)bm.Current)应该没有更新吧,绑定的数据集并没有丝毫改变,数据库更不会有变化。(楼主说数据库变了,怎么会这样子)
      

  5.   

    首先更新的应该是界面上的datagrid,
    然后绑定的数据集也随着更新
    然后才是数据库更新吧……
      

  6.   

    操作实际上是这样的:从数据源取数据后用adapter填充dataset,然后把dataset与datagrid绑定,对datagrid的操作包括添加,删除,修改,更新。其中添加也是通过在textbox中填写来完成。点击“添加,删除,修改”这三个按钮实际上都是对本地的dataset进行操作,点击“更新”按钮才是真正的实现写回数据库。当我点“添加”或“删除”后,datagrid都会变化,但点“修改”就是不行,但是点“更新”后看数据库会发现修改所做的改变是有的。我用currencymanager刷新了的,没有用。
    也调用了acceptchanges的。现放出较完整的代码,请各位指点。谢谢
    private void btnEdit_Click(object sender, System.EventArgs e)//"修改"按钮的事件
    {
             bm = (CurrencyManager)dgdPeople.BindingContext[dgdPeople.DataSource,dgdPeople.DataMember];
    if(bm.Count!=0)
    {
      DataRow curPeopleRow = ((DataRowView)bm.Current).Row;
     .....
    curPeopleRow.BeginEdit();
            curPeopleRow ["NAME"] = NAME;//该NAME即从textbox中取得的值
            curPeopleRow.EndEdit();
            dgdPeople.SetDataBinding(People,"People");
            bm.Refresh();
            
        }
    }  private void btnDoUpdate_Click(object sender, System.EventArgs e)//更新按钮的事件 //People为dataset,与datagrid进行了绑定
    DataSet changedDataSet = People.GetChanges(DataRowState.Added | DataRowState.Modified | DataRowState.Deleted);
    ..//更新数据库
             People.AcceptChanges();
    }