我想要一个事务来复制文件,然后在数据库中插入一个记录.像下面的语句,但事务不包括复制文件.解决方案是什么?
using (TransactionScope scope1 = new TransactionScope())
{
// Copy a file
fileMgr.Move(srcFileName, destFileName);
// Insert a database record
dbMgr.ExecuteNonQuery(insertSql);
scope1.Complete();
}
Run Code Online (Sandbox Code Playgroud)
Dam*_*ith 19
此库允许您在以下事务中包装文件系统操作:
// Wrap a file copy and a database insert in the same transaction
TxFileManager fileMgr = new TxFileManager();
using (TransactionScope scope1 = new TransactionScope())
{
// Copy a file
fileMgr.Copy(srcFileName, destFileName);
// Insert a database record
dbMgr.ExecuteNonQuery(insertSql);
scope1.Complete();
}
Run Code Online (Sandbox Code Playgroud)
较新版本的Windows具有可以使用的称为TxF(事务性NTFS)的东西.这里有一个代码示例:WINDOWS VISTA - 在C#中引入TXF(第2部分) - 使用SYSTEM.TRANSACTIONS和DTC(我很抱歉大写锁定,但页面的标题是:-))
你必须使用MoveFileTransacted而不是DeleteFileTransactioned.一旦你进入DTC,你的SQL连接应该注册到它,所以一切都应该是一个大的事务.
| 归档时间: |
|
| 查看次数: |
15328 次 |
| 最近记录: |