.....//数据库取值省略
DataGrid.DataSource=
DataGrid.Databind();

解决方案 »

  1.   

    为什么直接在记录上按"Delete"键可以删除DataSet中的记录和DataGrid里面的记录,该代码是怎样的?
      

  2.   

    //this.DataSetSoundLocation.Tables["CateGory.CateGory2MediaFile.MediaFile2Maker"].Rows[this.iRowNumber].Delete();
    //这条语句是不是删除了table里面的
    //数据?但是DataGrid里面的数据没有删除.
    ----------------------------------------
    一般dataSet.Tables[0].Rows[index].Delete()
    这个方法只是把RowState变为Deleted,并没有真正删除,如果DataGrid的数据源是这个DataTable的话,DataGrid是看不到删除状态的row的。一般在数据更改之后使用AcceptChange()方法来接收改变(此时删除状态的row会被真正删除)。
      

  3.   

    将datagrid绑定,在默认的情况下,只要更新数据库就可以更新datagrid
      

  4.   

    谢谢 marising(抹布)//请教:
    //DataSet.AcceptChange()是不是从数据库也更新到数据库里面吧?
    //我数据库里面已经删除掉了.只是想把DataGrid里面的也删除如果DataGrid的数据源是这个DataTable的话,DataGrid是看不到删除状态的row的。一般在数
    //-----------我的datagrid是引用这个table,只是这个table是在Form1_Load里面写的
    //dataGridMaker.SetDataBinding(DataSetSoundLocation,"CateGory.CateGory2MediaFile.MediaFile2Maker");
    据更改之后使用AcceptChange()方法来接收改变(此时删除状态的row会被真正删除)。
      

  5.   

    谢谢canghaiyisu(沧海一粟) //从新更新数据库的话,比较浪费.我另外有个"刷新"按钮引:将datagrid绑定,在默认的情况下,只要更新数据库就可以更新datagrid
    //可以改变这个默认值吗?或者可以找到在DataGrid记录按"Delete"的那个事件吗?
      

  6.   

    当对 DataSet 调用 AcceptChanges 时,任何仍处于编辑模式的 DataRow 对象都将成功结束其编辑。每个 DataRow 的 RowState 属性也会随之更改;状态为 Added 和 Modified 的行的状态将变为 Unchanged,状态为 Deleted 的行则被移除。在典型的多层实现中,用于创建和刷新 DataSet 并依次更新原始数据的步骤包括: 通过 DataAdapter 使用数据源中的数据生成和填充 DataSet 中的每个 DataTable。 
    通过添加、更新或删除 DataRow 对象更改单个 DataTable 对象中的数据。 
    调用 GetChanges 方法以创建只反映对数据进行的更改的第二个 DataSet。 
    调用 DataAdapter 的 Update 方法,并将第二个 DataSet 作为参数传递。 
    调用 Merge 方法将第二个 DataSet 中的更改合并到第一个中。 
    针对 DataSet 调用 AcceptChanges。或者,调用 RejectChanges 以取消更改。