收录日期:2018/09/20 11:45:13 时间:2016/05/21 14:12:21 标签:ASP.NET
我将一个datagrid与dataset绑定,对datagrid的增、删,改都只先反映到dataset中,最后在一次性更新到数据库。
增、删,改的过程中,datagrid的index总是无法与dataset的index保持对应,如何解决?
比如我选择一条datagridItem(0)删除,并执行对应index(0)的dataset的delete()方法,然后再次将它们绑定,这样,在datagrid中看不到原来的第一条记录了,但在dataset中那条记录还是存在的,只是rowstat=deletec,这样导致dataset的rows.count>datagrid.items.count了,之后就无法根据我选择的其它datagrid item去读取dataset中对应记录的数据,我试了用datagrid.selectedItem.datasetIndex属性去找对应的index,也无法解决。 help pls
dataset的delete()方法后加上:acceptchanges()方法,在dataset中删除记录!
加一句:
mydataset.Tables["t1"].AcceptChanges();
我以前也试过一下,AcceptChanges方法是重新从数据库中读取吧?
执行了之后,再执行updatedataset就不会更新数据库了
DataSet.AcceptChanges 方法  [C#]请参见
DataSet 类 | DataSet 成员 | System.Data 命名空间 | AcceptChanges | AcceptRejectRule | BeginEdit | DataRow | ForeignKeyConstraint 
要求
平台: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows .NET Server family

Visual Basic

全部显示


提交自加载此 DataSet(或上次调用 AcceptChanges 以来)对其进行的所有更改。
如果你一定要这样的话,请你用dataview当着datagrid的datasource,然后用RowStateFilter取得没有被删除的直绑定到datagrid!