VB.NET & System.Data.SqlClient - Transaction() - How to learn Connector/NET ADO.NET component System.Data.SqlClient namespace is the .NET Framework Data Provider for SQL Server data source, Using the SqlTransaction class for makes sure that changes that were made to the store are treated as a group that can be committed or rolled back (SQL Server 2000,2005,2008 Database)
ShotDev Focus:
- VB.NET & System.Data.SqlClient - Transaction()
Example
Transaction.aspx
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.SqlClient"%>
<%@ Page Language="VB" %>
<script runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
SampleTransaction()
End Sub
Sub SampleTransaction()
Dim objConn As System.Data.SqlClient.SqlConnection
Dim objCmd As System.Data.SqlClient.SqlCommand
Dim strConnString,strSQL As String
Dim Trans As SqlTransaction
strConnString = "Server=localhost;UID=sa;PASSWORD=;database=mydatabase;Max Pool Size=400;Connect Timeout=600;"
objConn = New System.Data.SqlClient.SqlConnection(strConnString)
objConn.Open()
'*** Start Transaction ***'
Trans = objConn.BeginTransaction(IsolationLevel.ReadCommitted)
Try
'*** Query 1 ***'
strSQL = "INSERT INTO customer (CustomerID,Name,Email,CountryCode,Budget,Used) " & _
"VALUES ('C005','Weerachai Nukitram','[email protected]','TH','2000000','1000000')"
objCmd = New System.Data.SqlClient.SqlCommand()
With objCmd
.Connection = objConn
.Transaction = Trans
.CommandType = CommandType.Text
.CommandText = strSQL
End With
objCmd.ExecuteNonQuery()
'*** Query 2 ***'
strSQL = "INSERT INTO customer (CustomerID,Name,Email,CountryCode,Budget,Used) " & _
"VALUES ('C006','Surachai Sirisart','[email protected]','TH','1000000','500000')"
objCmd = New System.Data.SqlClient.SqlCommand()
With objCmd
.Connection = objConn
.Transaction = Trans
.CommandType = CommandType.Text
.CommandText = strSQL
End With
objCmd.ExecuteNonQuery()
Trans.Commit() '*** Commit Transaction ***'
Me.lblText.Text = "Record is commit"
Catch ex As Exception
Trans.Rollback() '*** RollBack Transaction ***'
Me.lblText.Text = "Record is rollback ("& ex.Message &")"
End Try
objCmd = Nothing
objConn.Close()
objConn = Nothing
End Sub
</script>
<html>
<head>
<title>ShotDev.Com Tutorial</title>
</head>
<body>
<form id="form1" runat="server">
<asp:Label id="lblText" runat="Server"></asp:Label>
</form>
</body>
</html>
Error Case
Record is rollback (Violation of PRIMARY KEY constraint ‘PK_customer’. Cannot insert duplicate key in object ‘dbo.customer’. The statement has been terminated.)
Screenshot

