maevacmoi
Messages postés44Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention 1 décembre 2003
-
31 oct. 2003 à 15:53
maevacmoi
Messages postés44Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention 1 décembre 2003
-
3 nov. 2003 à 07:38
Hello !
J'ai une requête SQL "insert into", qui fonctionne correctement. Mais maintenant je voudrais effectuer un rollback du dernier enregistrement, en cas d'erreur. Malheureusement dès que j'utilise les 4 lignes mises en commentaire ci-dessus, il n'y a plus d'insertion dans la base ... Est-ce qu'il faut utiliser une autre méthode ? ou y a-t-il une erreur dans mon code ? merci d'avance !
maevacmoi
Messages postés44Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention 1 décembre 2003 3 nov. 2003 à 07:38
Effectivement, merci pour le coup de pouce.
SqlConnection myConnection = new SqlConnection("Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;");
myConnection.Open();
// Start a local transaction.
SqlTransaction myTrans = myConnection.BeginTransaction();
// Enlist the command in the current transaction.
SqlCommand myCommand = myConnection.CreateCommand();
myCommand.Transaction = myTrans;
try
{
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
myCommand.ExecuteNonQuery();
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
myCommand.ExecuteNonQuery();
myTrans.Commit();
Console.WriteLine("Both records are written to database.");
}
catch(Exception e)
{
try
{
myTrans.Rollback();
}
catch (SqlException ex)
{
if (myTrans.Connection != null)
{
Console.WriteLine("An exception of type " + ex.GetType() +
" was encountered while attempting to roll back the transaction.");
}
}
Console.WriteLine("An exception of type " + e.GetType() +
"was encountered while inserting the data.");
Console.WriteLine("Neither record was written to database.");
}
finally
{
myConnection.Close();
}