winform中datagrid使用DataSource =DataView绑定,第一次load数据进入datatable后,在datagrid中可以修改数据,使用DataAdapter.Update (DataTable)可以保存成功,但再次reload数据进入datatable后有时修改数据会自动还原,例单元格中数据为55,手工输入66后回车,单元格数据马上变为55。这种现象不是每次都发生,有时reload多次后才发生,有时第一次reload就发生,而且一旦发生,关闭当前winform,重建一个winform,再将datagrid绑定到dataview,故障不能消除,只能退出程序再进入。请问如何解决。

解决方案 »

  1.   

    datatable数据得到方法:
    1、为了能是winform一打开时在datagrid中就显示标题,所以DataAdapter使用的select * from 学生档案 where 学生属班级ID=不存在的空ID。
    2、再根据操作员选定的班级ID load数据时,程序先根据班级ID在datatable中查找是否有此选定班级ID的学生数据有就DataView.Delete(),并DataView.Table .AcceptChanges ();清除已载入选定班级的学生数据,再重新从数据库load当前选定班级的数据,DataView自动根据选定班级ID过滤。
      load数据DataAdapter使用select * from 学生档案 where 学生属班级ID=某一班级ID。
    不知各位大侠有什么好办法,当要刷新一个班级学生数据时,如何从datatable清除上次load的此班级学生数据,而不清除其他已经load班级的学生数据。
      

  2.   

    我使用的版本是visual studio .net 2003 操作系统w2000和xp