SQL事务处理
<head runat="server"> <title>Implicit Transactions using TransactionScope</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label ID="lblCategoryName" runat="server" Text="Category Name:" Width="179px"></asp:Label> <asp:TextBox ID="txtCategoryName" runat="server" /> <asp:Button ID="btnSave" runat="server" Text="Save" Width="92px" OnClick="btnSave_Click" /> <asp:Label ID="lblResult" runat="server" Font-Bold="true" Font-Size="Small" /> </div> </form> </body> </html>在示例 2 中,对于 Mydatabase 数据库执行插入的 SQL 语句包括在使用 using 块的 TransactionScope 对象 中。InsertCategroy()方法执行实际的向 ProductCategory 表插入新记录的工作。在插入记录后,该方法向调 用者返回新近插入记录的标识值(类别 ID 列)。一旦代码成功执行,则调用 TransactionScope 对象的 Complete()方法,以便告知.NET Framework 语句已经成功执行完成,事务导致的结果将提交给数据库。
以下是 TransactionScope 所完成的一些内容: 出现在 using 语句括号中的任何语句将在事务范围内执行。 任何在块中创建的连接将在事务中登记。 如果在 using 块中发生错误,则事务将自动回滚。 如果语句成功执行,那么作为工作的一部分,需要在事务中调用 Complete()方法。