| [C#]<%@ WebService Language="C#" Class="Orders" %>
 <%@ Assembly name="System.EnterpriseServices,
 Version=1.0.3300.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" %> using System;
 using System.Data;
 using System.Data.SqlClient;
 using System.Web.Services;
 using System.EnterpriseServices;
 public class Orders : WebService{
 [ WebMethod(TransactionOption=TransactionOption.RequiresNew)]
 public int DeleteAuthor(string lastName)
 {
 String deleteCmd = "DELETE FROM authors WHERE au_lname='" +
 lastName + "'" ;
 String exceptionCausingCmdSQL = "DELETE FROM NonExistingTable WHERE
 au_lname='" + lastName + "'" ;
 SqlConnection sqlConn = new SqlConnection("Persist Security Info=False;Integrated Security=SSPI;database=pubs;server=myserver");
 SqlCommand deleteCmd = new SqlCommand(deleteCmdSQL,sqlConn);SqlCommand exceptionCausingCmd = new
 SqlCommand(exceptionCausingCmdSQL,sqlConn);
 // This command should execute properly.deleteCmd.Connection.Open();
 deleteCmd.ExecuteNonQuery();
 // This command results in an exception, so the first command is// automatically rolled back. Since the XML Web service method is
 // participating in a transaction, and an exception occurs, ASP.NET
 // automatically aborts the transaction. The deleteCmd that
 // executed properly is rolled back.
 int cmdResult = exceptionCausingCmd.ExecuteNonQuery(); sqlConn.Close(); return cmdResult;}
 }
 [Visual Basic]
 <%@ WebService Language="VB" Class="Orders" %>
 <%@ assembly name="System.EnterpriseServices" %>
 Imports SystemImports System.Data
 Imports System.Data.SqlClient
 Imports System.Web.Services
 Imports System.Web.Util
 Imports System.EnterpriseServices
 Public Class Orders <WebMethod(TransactionOption:=TransactionOption.RequiresNew)> _Public Function DeleteAuthor (lastName as String) as Integer
 Dim deleteCmdSQL As String = "DELETE FROM authors WHERE au_lname='" + _ lastName + "'"
 Dim exceptionCausingCmdSQL As String = "DELETE FROM " + _
 "NonExistingTable WHERE au_lname='" + lastName + "'"
 Dim sqlConn As SqlConnection = New SqlConnection( _"Persist Security Info=False;Integrated Security=SSPI;database=pubs;server=myserver")
 Dim deleteCmd As SqlCommand = New SqlCommand(deleteCmdSQL,sqlConn)Dim exceptionCausingCmd As SqlCommand = New _
 SqlCommand(exceptionCausingCmdSQL,sqlConn)
 ' This command should execute properly.deleteCmd.Connection.Open()
 deleteCmd.ExecuteNonQuery()
 ' This command results in an exception, so the first command is' automatically rolled back. Since the XML Web service method is
 ' participating in a transaction, and an exception occurs, ASP.NET
 ' automatically aborts the transaction. The deleteCmd that
 ' executed properly is rolled back.
 Dim cmdResult As Integer = exceptionCausingCmd.ExecuteNonQuery()sqlConn.Close()
 Return cmdResultEnd Function
 End Class
   |