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

VB.NET Discussion :

Un DataReader associé à cette commande est déjà ouvert. Il doit d'abord être fermé


Sujet :

VB.NET

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 296
    Points : 81
    Points
    81
    Par défaut Un DataReader associé à cette commande est déjà ouvert. Il doit d'abord être fermé
    Bonjour,
    Voilà mon message d'erreur, et je vous mets mon bout de code :
    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
     
    'Une 1ière requete
     Call connect()
     Dim req1 As String = "select CODE from MaTable"
     Dim cmd1 As New SqlCommand(req1, cnx)                                                                      cmd1.CommandTimeout = 0                                       
    cmd1.Connection = cnx
    With cmd1.CommandTimeout = 0
    End With
    With cnx.ConnectionTimeout = 0
    End With
     
     reader1 = cmd1.ExecuteReader
     While reader1.Read()
            code = reader1(0)
     
    'Une 2ième requête qui va utiliser le résultat de la 1ière requête
     
     Dim req2 As String = "select Adresse from MaTable2 where CODE like '" & code & "' "
     Dim cmd2 As New SqlCommand(req2, cnx)
     reader2 = cmd2.ExecuteReader()
     Do While reader2.Read()
     
    // un ceratin traitement
    end while
    Mon code se bloque au niveau de la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     reader2 = cmd2.ExecuteReader()
    avec le message d'erreur :
    Un DataReader associé à cette commande est déjà ouvert. Il doit d'abord être fermé.
    si quelqu'un pourrait m'aider.
    Merci.

  2. #2
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Points : 4 574
    Points
    4 574
    Par défaut
    Salut,

    Essaye de fermer ton 1er reader.

    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
     
    'Une 1ière requete
     Call connect()
     Dim req1 As String = "select CODE from MaTable"
     Dim cmd1 As New SqlCommand(req1, cnx)                                                                      cmd1.CommandTimeout = 0                                       
    cmd1.Connection = cnx
    With cmd1.CommandTimeout = 0
    End With
    With cnx.ConnectionTimeout = 0
    End With
     
     reader1 = cmd1.ExecuteReader
     Do While reader1.Read()
            code = reader1(0)
     Loop
     
     reader1.Close()
     
    'Une 2ième requête qui va utiliser le résultat de la 1ière requête
     
     Dim req2 As String = "select Adresse from MaTable2 where CODE like '" & code & "' "
     Dim cmd2 As New SqlCommand(req2, cnx)
     reader2 = cmd2.ExecuteReader()
     Do While reader2.Read()
     
    // un ceratin traitement
    end while
     
     reader2.Close()
     cnx.Close()

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 296
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par Jean-Michel Ormes Voir le message
    Salut,

    Essaye de fermer ton 1er reader.

    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
     
    'Une 1ière requete
     Call connect()
     Dim req1 As String = "select CODE from MaTable"
     Dim cmd1 As New SqlCommand(req1, cnx)                                                                      cmd1.CommandTimeout = 0                                       
    cmd1.Connection = cnx
    With cmd1.CommandTimeout = 0
    End With
    With cnx.ConnectionTimeout = 0
    End With
     
     reader1 = cmd1.ExecuteReader
     Do While reader1.Read()
            code = reader1(0)
     Loop
     
     reader1.Close()
     
    'Une 2ième requête qui va utiliser le résultat de la 1ière requête
     
     Dim req2 As String = "select Adresse from MaTable2 where CODE like '" & code & "' "
     Dim cmd2 As New SqlCommand(req2, cnx)
     reader2 = cmd2.ExecuteReader()
     Do While reader2.Read()
     
    // un ceratin traitement
    end while
     
     reader2.Close()
     cnx.Close()
    MErci.

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 30/11/2011, 12h42
  2. Réponses: 2
    Dernier message: 14/04/2010, 16h34
  3. Réponses: 3
    Dernier message: 05/01/2010, 17h05
  4. Réponses: 3
    Dernier message: 27/02/2007, 14h04
  5. Quelle est cette commande qui plante linux?
    Par 123quatre dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 18/02/2006, 13h48

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