bonjour bonjour !

j'essaie de mettre en place une transaction... comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Dim oConnection As SqlClient.SqlConnection
Dim i As Integer
		Try
			oConnection.ConnectionString = oString
			oConnection.Open()
			For i = 0 To 2
                'initilisation transaction
                Dim Transac As SqlClient.SqlTransaction = oConnection.BeginTransaction
                'creation commandes à éxécuter
                Dim SQLTransac As SqlClient.SqlCommand = oConnection.CreateCommand
                'commandes contrôlées par la transaction.
                oCommand.Transaction = Transac
                oCommand.CommandType = CommandType.Text
                If i = 1 Then
                    oCommand.CommandText = "INSERT INTO test values"
                Else
                    oCommand.CommandText = "INSERT INTO test(test_id) values (" & i & ")"
                End If
                Try
                    If Not (oCommand.ExecuteNonQuery = 0) Then
                        'enregistrement
                        Transac.Commit()
                    Else
                        'erreur annulation
                        Transac.Rollback()
                        MessageBox.Show("Erreur d'écriture dans la base de données")
                    End If
                Catch ex As Exception
                    'annulation
                    Transac.Rollback()
                    MessageBox.Show("Erreur d'écriture dans la base de données: " + ex.Message)
                End Try
            Next
            oCommand.Dispose()
            oConnection.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
j'ai mis volontairement une condition :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 If i = 1 Then
                    oCommand.CommandText = "INSERT INTO test values"
                Else
                    oCommand.CommandText = "INSERT INTO test(test_id) values (" & i & ")"
                End If
pour faire planter une de mes requêtes et vérifier que ça annule bien les premières requêtes qui se sont éxecutées, mais ça n'annule rien du tout

une erreur dons mon code ?! :o merci !