场所提供电力服务。其在一个名为TKPowerLightDB的Microsofr SQL Server数据库上存放和修改数据。应用程序中的一个页面是用来在月末完成计算所有用户的电费。 当用户单击页面上的一个按钮时,你想你的代码运行几个存储过程来计算月末电费平衡表。在计算出的电费平稳表能被存储到数据库之前这些存储过程必须成功。如果任何一个存储过程失败,你不希望将计算出的电费平稳表存进数据库。当存储过程在运行时,你不想让任何用户同时能编辑,添加,或删除存储过程调用的表,你该怎么做?
A.设置SqlTransaction对象的IsolationLevel属性为IsolationLevel.Serializable。将SqlTransaction对象赋值为SqlCommand对象的Transaction属性。使用一个SqlCommand对象运行存储过程。
B.定义一个源于System.EnterpriseServices.ServicesComponent的类来运行存储过程。使用一个TransactionAttribute类型的属性注释该类。设置其Value值为 TransactionOption.RequiresNew
C.创建一个控制存储过程。用这个控制存储过程调用完成月末操作所需的其他的存储过程。添加WITH REPEATABLEREAD到控制存储过程中。
D.当一个存储过程失败时使用结构异常句柄获取SqlException。使用SqlExceptionProcedure属性去识别哪个存储过程产生异常,并且调用一个存储过程来保存先前的计算结果。