mysql transaction (commit et rollback)

ci-dessous le code que j'utilise pour MySqlTransaction et il fonctionne parfaitement....
mais le problème est que je suis en utilisant un seul exemple de mysqlcommand j'ai à usage unique PARAMÈTRE. qui est de ruiner ma requête. est-il un autre moyen de contourner le faire....

j'ai essayé de jeter cmd après chaque requête, mais d'aucune utilité.. 🙁


          con.Open()
            Dim sqlTran As MySqlTransaction = con.BeginTransaction()
            Dim cmd As MySqlCommand = con.CreateCommand()
            cmd.Transaction = sqlTran
            Dim str As String = Nothing
            Try
                cmd.CommandText = "SELECT myid FROM memaster where    Adate=@adate and ANo=@ano and ASource=@asrc"
                cmd.Parameters.AddWithValue("@adate", txt_bpass_adate.Text)
                cmd.Parameters.AddWithValue("@ano", txt_bpass_af.Text)
                cmd.Parameters.AddWithValue("@asrc", txt_bpass_asource.Text)
                str = cmd.ExecuteScalar()
                'cmd.Dispose()'
                If str Is Nothing Then

                    cmd.CommandText = "Insert into memaster (ADate,ANo,ASource) values (@aDate,@aNo,@aSRC)"
                    cmd.Parameters.AddWithValue("@aDate", txt_bpass_adate.Text)
                    cmd.Parameters.AddWithValue("@aNo", txt_bpass_af.Text)
                    cmd.Parameters.AddWithValue("@aSRC", txt_bpass_asource.Text)

     cmd.ExecuteNonQuery()
    End If
     sqlTran.Commit()

            Catch ex As Exception
                Try
                    sqlTran.Rollback()
                Catch ex1 As Exception

                End Try
            End Try

j'ai réellement envie de le feu plus de 4 requêtes de transaction unique, de sorte que si quelque chose va mal, je peux restauration...

si tout onebody toute autre méthode de bien vouloir partager le concept wid moi...


     For index As Integer = 1 To 5
                    cmd.CommandText = "Insert into detail (ID,BNos,SNo) values (@FID1,@BNo,@SeqN1)"
                    cmd.Parameters.AddWithValue("@FID1", str)
                    cmd.Parameters.AddWithValue("@BNo", str1)
                    cmd.Parameters.AddWithValue("@SeqN1", txt_bpass_sqn1.Text)
                    cmd.ExecuteNonQuery()


                Next
lorsque vous jetez un exemple vous ne pouvez pas utiliser plus de la connexion est fermée et il est préparé pour la collecte des ordures. Pourquoi vous devez utiliser une seule instance de commande? Je ne comprends pas votre problème, essayez de mieux expliquer.
c'.Cmd.Dispose(); tiendrait bon.ce qui se passe quand vous donnez dispose()?
Vous spécifiez le problème vous-même: vous êtes en utilisant un MySqlCommand quand vous devriez être à l'aide de deux.
en fait, rien ne se passe après l'élimination, il n'est pas même en donnant une erreur et je peux utiliser la même instance sans aucun problème.
oui, mais je dois utiliser un seul.... est-il possible en fait, j'ai à feu à plus de 3 requêtes et à maintenir tout au sigle de l'opération, de sorte que si quelque chose va mal, je peux restauration

OriginalL'auteur neerajMAX | 2013-01-10