如题,我用XML作为经量级的数据库,其中有一个是采用异步操作XML,当正在写入数据的时候,突然关闭窗体的话,会导致写入XML到一半而中断,当再次读取数据的时候,则出错,请问有什么办法可以确保数据写入完整?或者有什么办法可以修复或删除出错的数据?
在线等,请大家帮帮忙啊!谢谢!

解决方案 »

  1.   

    有种方法比较简单,你写成三层架构,利用服务调用写xml文件。
    要是xml文件比较大,你可以设置一个互锁信号,禁止程序运行期间关闭程序。
      

  2.   


    由于这个是客户端程序,所以为了方便,无法采用服务器来写xml
    程序中是异步操作xml的,所以很难控制程序是否可以中断,但还是有特殊情况,
    如用任务管理器来结束进程,就中断了。。
    我想有没有类似SQLServer那样事务的功能?操作中断时可以回滚就好了
      

  3.   


    我的问题是操作XML中断的问题,根本不是多线程或异步的问题
    用独立线程的话,整个程序中断,独立线程也跟着中断的
      

  4.   

    写文件中断是很麻烦的,可以这样解决
    1,定期备份,例如每次启动做一个备份,或者重要数据保存成功后备份,遇到文件错误,选择备份文件恢复就可以了。
    2,使用轻量级数据库,例如Access等,使用OLEDB驱动来访问,这样有事务,应该不怕进程无故终止引起写文件错误。