我有三个方法 我想一次性执行完毕 但要保证方法执行成功,我就想到的了事务,但我不太清楚事务能不能作用在方法上?如果可以 怎么用?
不知道我说的清楚不清楚 我有三个方法 a,b,c
a 执行成功后执行b
一但b 不成功 回滚 可不可以这样?在线等
不知道我说的清楚不清楚 我有三个方法 a,b,c
a 执行成功后执行b
一但b 不成功 回滚 可不可以这样?在线等
解决方案 »
- c# 数据库连接超时 延迟时间设置ConnectTimeout 或 Connection Timeout问题
- 高内聚,低耦合怎么理解?
- 屏幕录制,写入avi时的一个小问题?????????????????????????????????????
- 自动生成checkbox问题?(有点复杂,大家帮忙看下)
- The 'OraOLEDB.Oracle.1' provider is not registered on the local machine.
- C++中声明的int nDevAddr=0xffffffff;在C#中怎么声明
- 忙了好长时间了.快气死了?高手进....
- 请问一个线程同步的问题:Monitor的用法
- [DllImport("Iphlpapi.dll")]在c#,vs2003的类中怎么就不行呢
- 挑战sql语句
- 关于正则表达式的问题
- VS2005 C#调试请教
SqlConnection myConn=GetConn();
myConn.Open();
SqlCommand myComm=new SqlCommand();
SqlTransaction myTran=new SqlTransaction();
try
{
myComm.Connection=myConn;
myComm.Transaction=myTran;
file://定位到pubs数据库
myComm.CommandText="USE pubs";
myComm.ExecuteNonQuery(); myComm.CommandText="UPDATE roysched SET royalty = royalty * 1.10 WHERE title_id LIKE 'Pc%'";
myComm.ExecuteNonQuery();
myTran.Commit();//提交事务
}
catch(Exception err)
{
throw new ApplicationException("事务操作出错,系统信息:"+err.Message);
}
finally
{
myConn.Close();
}
用线程试试看
private void a()
{
...
}
private void b()
{
...
}
private void c()
{
...
}Thread th1=new Thread(new ThreadStart(a));
Thread th2=new Thread(new ThreadStart(b));
Thread th3=new Thread(new ThreadStart(c));
th1.Start();
th2.Start();
th3.Start();
比如
A里写了文件
B里改了数据
C里建了目录A出错什么都不做
B出错什么要把A的文件恢复原貌或删除新文件
C出错什么要把A的文件恢复原貌或删除新文件、B的数据事务回滚但回滚过程如果发生错误,失败,就回滚不完整不知道.net在安装时如果安装失败后回滚是怎么做的,
还有不知道能不能参考windows的数据还原功能,
{
myTran.Rollback();
throw new ApplicationException("事务操作出错,系统信息:"+err.Message);
}