Making SQL transaction in DB using ASP.NET 2.0 and VB
In this tutorial, we will show you how to make a Transact-SQL transaction in a SQL Server database. We will use ASP.NET 2.0 and VB.NET in the sample.
First, import the namespace of System.Data.SqlClient. The System.Data.SqlClient namespace is the.NET Framework Data Provider for SQL Server. The.NET Framework Data Provider for SQL Server describes a collection of classes used to access a SQL Server database in the managed space.
Imports System.Data.SqlClient |
We instantiate a Connections object to connect the sample database of Northwind. Then instantiate a SqlTransaction object, and associate it to Connections object. The next step is to instantiate a SqlCommand object, set the Transaction property of SqlCommand to SqlTransaction. After then, use SqlCommand to excute two Sql statements. As one of the statements is incorrect, the transaction will be rolled back on the error.
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim myConnection As New SqlConnection("Data Source=localhost;Initial Catalog=Northwind;uid=sa;pwd=sa;") myConnection.Open() Dim myTrans=myConnection.BeginTransaction() Dim myCommand As New SqlCommand() myCommand.Connection = myConnection myCommand.Transaction = myTrans Try myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')" myCommand.ExecuteNonQuery() myCommand.CommandText = "delete * from Region where RegionID=101" myCommand.ExecuteNonQuery() myTrans.Commit() Response.Write("Both records are written to database.") Catch ep As Exception myTrans.Rollback() Response.Write(ep.ToString()) Response.Write("Neither record was written to database.") Finally myConnection.Close() End Try End Sub |
The front end Default.aspx page looks something like this:
<html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Transaction </title> </head> <body> <form id="form1" runat="server"> <div> <fieldset style='height: 383px'> <legend><strong>Transaction</strong></legend> <br /> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Insert" /></fieldset> </div> </form> </body> </html> |
The flow for the code behind page is as follows.
Imports System.Data.SqlClient Partial Class _Default Inherits System.Web.UI.Page Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim myConnection As New SqlConnection("Data Source=localhost;Initial Catalog=Northwind;uid=sa;pwd=sa;") myConnection.Open() Dim myTrans=myConnection.BeginTransaction() Dim myCommand As New SqlCommand() myCommand.Connection = myConnection myCommand.Transaction = myTrans Try myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')" myCommand.ExecuteNonQuery() myCommand.CommandText = "delete * from Region where RegionID=101" myCommand.ExecuteNonQuery() myTrans.Commit() Response.Write("Both records are written to database.") Catch ep As Exception myTrans.Rollback() Response.Write(ep.ToString()) Response.Write("Neither record was written to database.") Finally myConnection.Close() End Try End Sub End Class |
Filed under: Connecting Using OLE DB Providers, Database connection, Connecting Using ODBC, MDAC, Connecting to SQL Server, ADO.Net, .Net 1.1, SQL Transaction, ASP.NET, SQL commit, Transact-SQL, SQL, Transaction, VB.NET