SqlTransaction Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente une transaction Transact-SQL à effectuer dans une base de données SQL Server. Cette classe ne peut pas être héritée.
public ref class SqlTransaction sealed : MarshalByRefObject, IDisposable, System::Data::IDbTransaction
public ref class SqlTransaction sealed : System::Data::Common::DbTransaction
public sealed class SqlTransaction : MarshalByRefObject, IDisposable, System.Data.IDbTransaction
public sealed class SqlTransaction : System.Data.Common.DbTransaction
type SqlTransaction = class
inherit MarshalByRefObject
interface IDbTransaction
interface IDisposable
type SqlTransaction = class
inherit DbTransaction
Public NotInheritable Class SqlTransaction
Inherits MarshalByRefObject
Implements IDbTransaction, IDisposable
Public NotInheritable Class SqlTransaction
Inherits DbTransaction
- Héritage
- Héritage
- Implémente
Exemples
L’exemple suivant crée un SqlConnection et un SqlTransaction. Il montre également comment utiliser les méthodes et Rollback les BeginTransactionCommitméthodes. La transaction est restaurée sur une erreur ou si elle est supprimée sans avoir été validée.
Try
/
Catch la gestion des erreurs est utilisée pour gérer les erreurs lors de la tentative de validation ou de restauration de la transaction.
private static void ExecuteSqlTransaction(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = connection.CreateCommand();
SqlTransaction transaction;
// Start a local transaction.
transaction = connection.BeginTransaction();
// Must assign both transaction object and connection
// to Command object for a pending local transaction
command.Connection = connection;
command.Transaction = transaction;
try
{
command.CommandText =
"Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
command.ExecuteNonQuery();
command.CommandText =
"Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
command.ExecuteNonQuery();
// Attempt to commit the transaction.
transaction.Commit();
Console.WriteLine("Both records are written to database.");
}
catch (Exception ex)
{
Console.WriteLine("Commit Exception Type: {0}", ex.GetType());
Console.WriteLine(" Message: {0}", ex.Message);
// Attempt to roll back the transaction.
try
{
transaction.Rollback();
}
catch (Exception ex2)
{
// This catch block will handle any errors that may have occurred
// on the server that would cause the rollback to fail, such as
// a closed connection.
Console.WriteLine("Rollback Exception Type: {0}", ex2.GetType());
Console.WriteLine(" Message: {0}", ex2.Message);
}
}
}
}
Private Sub ExecuteSqlTransaction(ByVal connectionString As String)
Using connection As New SqlConnection(connectionString)
connection.Open()
Dim command As SqlCommand = connection.CreateCommand()
Dim transaction As SqlTransaction
' Start a local transaction
transaction = connection.BeginTransaction()
' Must assign both transaction object and connection
' to Command object for a pending local transaction.
command.Connection = connection
command.Transaction = transaction
Try
command.CommandText = _
"Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"
command.ExecuteNonQuery()
command.CommandText = _
"Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"
command.ExecuteNonQuery()
' Attempt to commit the transaction.
transaction.Commit()
Console.WriteLine("Both records are written to database.")
Catch ex As Exception
Console.WriteLine("Commit Exception Type: {0}", ex.GetType())
Console.WriteLine(" Message: {0}", ex.Message)
' Attempt to roll back the transaction.
Try
transaction.Rollback()
Catch ex2 As Exception
' This catch block will handle any errors that may have occurred
' on the server that would cause the rollback to fail, such as
' a closed connection.
Console.WriteLine("Rollback Exception Type: {0}", ex2.GetType())
Console.WriteLine(" Message: {0}", ex2.Message)
End Try
End Try
End Using
End Sub
Remarques
L’application crée un SqlTransaction objet en appelant BeginTransaction l’objet SqlConnection . Toutes les opérations suivantes associées à la transaction (par exemple, validation ou abandon de la transaction) sont effectuées sur l’objet SqlTransaction .
Note
Try
/
Catch La gestion des exceptions doit toujours être utilisée lors de la validation ou de la restauration d’un SqlTransaction. À la fois Commit et Rollback générez un InvalidOperationException si la connexion est terminée ou si la transaction a déjà été restaurée sur le serveur.
Pour plus d’informations sur les transactions SQL Server, consultez Explicit Transactions et Coding Efficient Transactions.
Propriétés
| Nom | Description |
|---|---|
| Connection |
Obtient l’objet SqlConnection associé à la transaction ou |
| DbConnection |
En cas de substitution dans une classe dérivée, obtient l’objet DbConnection associé à la transaction. (Hérité de DbTransaction) |
| IsolationLevel |
Spécifie la IsolationLevel transaction. |
Méthodes
| Nom | Description |
|---|---|
| Commit() |
Valide la transaction de base de données. |
| CreateObjRef(Type) |
Crée un objet qui contient toutes les informations pertinentes requises pour générer un proxy utilisé pour communiquer avec un objet distant. (Hérité de MarshalByRefObject) |
| Dispose() |
Libère les ressources détenues par l’objet. |
| Dispose() |
Libère les ressources non managées utilisées par le DbTransaction. (Hérité de DbTransaction) |
| Dispose(Boolean) |
Libère les ressources non managées utilisées par les DbTransaction ressources gérées et libère éventuellement les ressources managées. (Hérité de DbTransaction) |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetLifetimeService() |
Récupère l’objet de service de durée de vie actuel qui contrôle la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| InitializeLifetimeService() |
Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| MemberwiseClone(Boolean) |
Crée une copie superficielle de l’objet actuel MarshalByRefObject . (Hérité de MarshalByRefObject) |
| Rollback() |
Restaure une transaction à partir d’un état en attente. |
| Rollback(String) |
Restaure une transaction à partir d’un état en attente et spécifie le nom de la transaction ou du point d’enregistrement. |
| Save(String) |
Crée un point d’enregistrement dans la transaction qui peut être utilisé pour restaurer une partie de la transaction et spécifie le nom du point d’enregistrement. |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IDbTransaction.Connection |
Obtient l’objet DbConnection associé à la transaction ou une référence Null si la transaction n’est plus valide. (Hérité de DbTransaction) |