用DataGrid浏览数据相关实例(2)

分类: VC.NET   出处:iocblog整理  更新时间:2009-01-02   添加到收藏  
  

  数据操作
  
  按钮添加
  
  private sub badd_click(byval sender as system.object, byval e as system.eventargs) handles badd.click
  
  dim dv as dataview
  
  dim rownew as datarowview
  
  dv = dg.datasource
  
  rownew = dv.addnew()
  
  rownew.endedit()
  
  dg.currentrowindex = dv.table.rows.count - 1
  
  dg.select(dg.currentrowindex)
  
  end sub
  
  在调用addnew添加一条新记录之后,紧接着调用了endedit,这样是表明这个添加操作已经完成,可以对这个新记录进行其它任何操作了。在此调用之前,新记录被认为是正在编辑的记录,会被锁定,这时对其进行删除操作就会引发错误,而且这条记录并不会真正的存入表中。在endedit调用之后,新记录存入表中,但是行状态被标志为新增记录。
  
  这一步完成后,用户一般会通过表格输入新记录的各个字段值。在程序中,实际上是将这个过程视做对新增记录的修改。
  
  按钮删除
  
  private sub bdel_click(byval sender as system.object, byval e as system.eventargs) handles bdel.click
  
  dim dv as dataview
  
  dv = dg.datasource
  
  dv.delete(dg.currentrowindex)
  
  dg.select(dg.currentrowindex)
  
  end sub
  
  按钮保存
  
  private sub bsave_click(byval sender as system.object, byval e as system.eventargs) handles bsave.click
  
  me.updatedata()
  
  end sub
  
  保存子过程
  
  private sub updatedata()
  
  dim addds as dataset
  
  dim delds as dataset
  
  dim updateds as dataset
  
  try
  
  addds = ds1.getchanges(datarowstate.added)
  
  delds = ds1.getchanges(datarowstate.deleted)
  
  updateds = ds1.getchanges(datarowstate.modified)
  
  if addds is nothing then
  
  else
  
  oddaperson.update(addds)
  
  oddatype.update(addds)
  
  end if
  
  if updateds is nothing then
  
  else
  
  oddaperson.update(updateds)
  
  oddatype.update(updateds)
  
  end if
  
  if delds is nothing then
  
  else
  
  oddaperson.update(delds)
  
  oddatype.update(delds)
  
  end if
  
  catch ex as exception
  
  msgbox(ex.message)
  
  exit sub
  
  end try
  
  try
  
  dvperson.table.acceptchanges()
  
  dvtype.table.acceptchanges()
  
  ds1.acceptchanges()
  
  catch ex as exception
  
  msgbox(ex.message)
  
  exit sub
  
  end try
  
  end sub
  
  * 在为datatable调用acceptchanges之后,将清除所有行的状态标志,也就是说,程序将无法再区分哪些是新添加的,哪些是被修改后的。所以所有利用行状态标志对数据源进行修改的操作都放在了此调用之前。
  
  * 将各种修改存回数据源的顺序为:添加的行――被修改的行――被删除的行。以免在操作时发生逻辑错误。[iocblog.net 来源]

上一页 [1] [2]


Tag: DataGrid



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。