日期:2014-05-17  浏览次数:20983 次

事物
[size=16px]问题是:
C#代码中的一个方法里面有三个fileinfo,我现在需要加一个事物,如果一个Fileinfo文件的更新失败,则回滚事物给出提示框,然后退出程序,现在这个事物我不知该如何加。
请师傅们指示!
谢谢![/size]

------解决方案--------------------
先写日志记录所要更新的文件,如果更新成功替换日志,如果有任何一个更新失败,则不管,你更新的文件始终根据你的日志文件来运行。


------解决方案--------------------
你用 IDictionary 类存储 操作记录,然后再对你要更新的文件进行备份。

成功 则删除备份,不成功则还原。
------解决方案--------------------
数据库使用
SqlTransaction 
文件可监视用FileSystemWatcher
------解决方案--------------------
和数据库的事务毫无关系。你需要自己实现一个文件系统的事务的逻辑。

无非就是实现两点,一个是,在事务操作的过程中,把相关文件锁定,不允许其它程序修改、操作,以实现事务的原子性。另一个是,用堆栈表示你的操作过程,以便回滚操作。