IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[VB.Net][2.0] Transaction SQL


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 210
    Par défaut [VB.Net][2.0] Transaction SQL
    Salut,

    j'ai un petit bout de code pour une transaction SQL en ado.net :
    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
        Sub TransAjout()
            Dim trans As SqlTransaction
            Dim conn As SqlConnection
            Dim comm As SqlCommand
     
            Try
                conn = New SqlConnection(ConfigurationManager.ConnectionStrings("GestionSIE2ConnectionString").ConnectionString)
                conn.Open()
                comm = conn.CreateCommand()
                trans = conn.BeginTransaction("BuilderTransaction")
                comm.Connection = conn
                comm.Transaction = trans
     
                comm.CommandText = "INSERT INTO dbo.Table (Champ1, Champ2) VALUES (Valeur1, Valeur2)"
     
                comm.Transaction = trans
     
                comm.ExecuteNonQuery()
                trans.Commit()
            Catch e As Exception
                Dim message As String
                Try
                    If Not (trans Is Nothing) Then
                        trans.Rollback("BuilderTransaction")
                    End If
                Catch ex As SqlException
                    message = "L'erreur suivante " + ex.GetType().ToString() + " est survenue lors de l'annulation de la transaction"
                    Response.Write("<body><script>alert(""" & message & """);</script></body>")
                End Try
                message = "L'erreur suivante " + e.GetType().ToString() + " est survenue lors de l'insertion des données"
                Response.Write("<body><script>alert(""" & message & """);</script></body>")
            Finally
                If Not (conn Is Nothing) Then
                    conn.Close()
                End If
            End Try
        End Sub
    Comment le modifier pour obtenir la clé d'identification de l'enregistrement que l'on vient d'insérer ?

    Merci A+

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    le mieux est de passer par une procédure stockée qui te renverrait dans une variable la clé d'identification de ta variable.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 210
    Par défaut
    Comme visiblement personne ne sait, je donne la solution que j'ai trouvé :

    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
    39
    40
    41
     Sub TransAjout() 
            Dim trans As SqlTransaction 
            Dim conn As SqlConnection 
            Dim comm As SqlCommand 
     
            Try 
                conn = New SqlConnection(ConfigurationManager.ConnectionStrings("GestionSIE2ConnectionString").ConnectionString) 
                conn.Open() 
                comm = conn.CreateCommand() 
                trans = conn.BeginTransaction("BuilderTransaction") 
                comm.Connection = conn 
                comm.Transaction = trans 
     
                comm.CommandText = "INSERT INTO dbo.Table (Champ1, Champ2) VALUES (Valeur1, Valeur2); set @Id= (select @@IDENTITY as Id)" 
                Dim Parametre As SqlParameter
                Parametre = comm.Parameters.Add("@Id", SqlDbType.Int)
                Parametre.Direction = ParameterDirection.Output
     
                comm.Transaction = trans 
     
                comm.ExecuteNonQuery() 
                trans.Commit()
                Response.Write("<body><script>alert(""" & comm.Parameters("@Id").Value.ToString() & """);</script></body>")
            Catch e As Exception 
                Dim message As String 
                Try 
                    If Not (trans Is Nothing) Then 
                        trans.Rollback("BuilderTransaction") 
                    End If 
                Catch ex As SqlException 
                    message = "L'erreur suivante " + ex.GetType().ToString() + " est survenue lors de l'annulation de la transaction" 
                    Response.Write("<body><script>alert(""" & message & """);</script></body>") 
                End Try 
                message = "L'erreur suivante " + e.GetType().ToString() + " est survenue lors de l'insertion des données" 
                Response.Write("<body><script>alert(""" & message & """);</script></body>") 
            Finally 
                If Not (conn Is Nothing) Then 
                    conn.Close() 
                End If 
            End Try 
        End Sub
    A+

  4. #4
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 210
    Par défaut
    Salut,

    dans mon cas, je ne pouvais pas utiliser de PS...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [vb.net] transaction sql server
    Par iamunknown dans le forum Windows Forms
    Réponses: 9
    Dernier message: 05/02/2006, 17h08
  2. [JDBC][Access] Transaction SQL sur MS Access?
    Par Twofy dans le forum JDBC
    Réponses: 2
    Dernier message: 19/08/2004, 14h46
  3. Transact Sql : Conversion de variable
    Par lord_paco dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/08/2003, 13h25
  4. Conversion de SQL à Transact-SQL
    Par sebioni dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/07/2003, 11h59
  5. - fonction Transact-SQL...
    Par korrigann dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/05/2003, 15h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo