Overblog Suivre ce blog
Editer l'article Administration Créer mon blog

Présentation

  • : Romagny13 - Du .NET,du pur .NET
  • Romagny13 - Du .NET,du pur .NET
  • : Cycle de progression Faire (quelque chose qui marche) -> comprendre ce que l’on fait/comment cela marche -> pousser plus loin les notions
  • Contact

Recherche

Articles Récents

10 février 2014 1 10 /02 /février /2014 17:07

Exemple : on essaie d’insérer deux nouvelles lignes dans la table Catégories de la base Northwind La  deuxième requête ne renseignant pas CategoryName (qui n’accepte pas les valeurs nulles), l’insertion sera annulée

public void DoTransaction()

        {

            using (SqlConnection connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=SSPI;"))

            {

                connection.Open();

                SqlTransaction transaction = connection.BeginTransaction();

                SqlCommand command = connection.CreateCommand();

                command.Transaction = transaction;

                try

                {

                    //      

                    command.CommandText = "INSERT INTO [dbo].[Categories]([CategoryName],[Description]) VALUES('Cakes','Good cakes .');";

                    command.ExecuteNonQuery();

                   

                    // CategoryName n'acceptant pas de valeur nulle ....  

                    command.CommandText = "INSERT INTO [dbo].[Categories]([Description]) VALUES('Category unnamed .');";

                    command.ExecuteNonQuery();

 

                    transaction.Commit();

                }

                catch (Exception Ex)

                {

                    transaction.Rollback();

                    MessageBox.Show(Ex.Message);

                }

            }

        }

 

transaction1.png 

 

IsolationLevel http://msdn.microsoft.com/fr-fr/library/system.transactions.isolationlevel(v=vs.110).aspx

 

Exemple IsolationLevel.Serializable : les données peuvent être lues mais pas modifiées pendant la transaction

SqlTransaction transaction = connection.BeginTransaction(IsolationLevel.Serializable);

 

 

TransactionScope

http://msdn.microsoft.com/fr-fr/library/system.transactions.transactionscope(v=vs.110).aspx

 

Partager cet article

Repost 0
Published by Romagny13 - dans ADO.NET
commenter cet article

commentaires