标签:style io os sp 文件 数据 on cti 代码
事务的四大特性:(A——原子性,C——一致性,I——隔离性,D——持久性)
两大类事务:
一、连接内事务
连接打开,在关闭之前,对数据库操作时所加的事务。
1).导入dll文件(添加System.Transactions引用)
2).添加命名空间:using System.Transactions;
1.事务对象的创建:
conn.Open();
SqlTransaction trans = conn.BeginTransaction();
2.把事务挂到命令对象上去
cmd.Transaction = trans;
3.执行命令对象.
cmd.CommandText="";
cmd.ExecuteNoneQuery();
.....
4.提交事务
trans.Commit();
5.回滚事务:放在catch里面
trans.Rollback();
try
{
conn.Open();
cmd.CommandText = "delete from work where infocode=@code";
cmd.ExecuteNonQuery();
cmd.CommandText = "delete from family where infocode=@code";
cmd.ExecuteNonQuery();
cmd.CommandText = "delete from info where code = @code";
cmd.ExecuteNonQuery();
trans.Commit(); //事务提交
}
catch (Exception ex)
{
trans.Rollback(); //事务回滚
throw ex; //ex.StackTrace,显示更详细的错误信息
}
finally
{
conn.Close();
}
二、分布式事务
在连接打开关闭之外设置事务。可以控制所有操作。
1.启用DTC服务
2.导入dll文件(添加System.Transactions引用)
3.添加命名空间:using System.Transactions;
4.编写代码。
TransactionScope类
using(TransactionScope ts = new TransactionScope())
{
数据库操作。
ts.Complete();
}
using(TransactionScope ts = new TransactionScope())
{
new WorkTableAdapter().DeleteByInfoCode(s);
throw new Exception("自定义的异常");
new FamilyTableAdapter().DeleteByInfoCode(s);
new InfoTableAdapter().DeleteInfo(s);
ts.Complete();
}
异常处理:try...[catch...][finally..]
异常,与正常情况有差异,不一定是错误。
try
{
可能会出现异常的代码;
}
[catch[(异常类型 异常对象)]
{
一旦出现异常,将会进入此处,对错误信息进行处理;
}]
[finally //不论程序是否运行正常,最后一定执行,常用来关闭链接通道。
{
}]
一、捕获异常
不加try..catch...一旦程序执出错,程序会立马终止。如果加上try...catch...,代表程序中已经把异常给处理了,程序只是终止try部份的运行,转入catch,整个程序不终止运行。
1、try部份:执行的部份,一旦出错就会终止try部份的执行,走catch。程序不会终止。
2、catch部份:异常处理,一旦出错就会走catch,在catch部份进行处理(写日志,界面显示,异常的包装替换)
如果catch(Exception ex)。常用ex.Message获取错误信息。
一个try可以跟多个catch,每个catch获得不同类型的异常对象。
3、finally部份:最终收尾部份,不管程序执行是否出错,总会执行finally,即使在try部份遇到return,break等关键词时,仍然会执行finally
二、抛出异常
(一)造异常对象:
Exception ex = new Exception("异常的错误信息");
throw ex;
(二)派生自己的异常:(少)
class MyException:Exception
{
}
标签:style io os sp 文件 数据 on cti 代码
原文地址:http://www.cnblogs.com/phantom-k/p/4080336.html