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

C# Discussion :

Un DataReader dans un autre DataReader


Sujet :

C#

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Points : 134
    Points
    134
    Par défaut Un DataReader dans un autre DataReader
    Bonjour,


    Est-ce possible de créer un DataReader dans un autre ?
    Par exemple, j'ai un code de ce type :

    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
     
    Command SelectCommand = new Command("RequeteSQL", MaConnection);
    DataReader MonReader = SelectCommand.ExecuteReader();
    MonReader.Read();
     
    if (MonReader.HasRows)
    {
        Command SelectCommand2= new Command("RequeteSQL", MaConnection);
        DataReader MonReader2 = SelectCommand2.ExecuteReader();
        MonReader2.Read();
     
        if (MonReader2.HasRows)
        {
            Commande InsertCommand = new Command("RequeteSQL", MaConnection);
            InsertCommand.Parameters.AddWithValue("parameter", value);
            """"""""""""""""""""""""""""""""""""""""""""""""""""""""""
            """"""""""""""""""""""""""""""""""""""""""""""""""""""""""
            InsertCommand.ExecuteNonQuery();
        }
     
        MonReader2.Close();
    }
     
    MonReader.Close();
    Pour moi, ça a l'air correct mais au moment de l'exécution de la requête d'ajout, j'ai une erreur me disant que je dois fermer un DataReader :

    There is already an open DataReader associated with this Command which must be closed first.
    Y a-t-il une solution ?


    Merci d'avance.

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Bonjour,
    Citation Envoyé par Juju54350 Voir le message
    Est-ce possible de créer un DataReader dans un autre ?
    Non.

    Ou alors utiliser deux connexions (une par DataReader).

    Ceci dit, ta demande implique de s'interroger pour savoir si tu n'essayes pas de faire coté client ce qui pourrait se faire coté serveur via une requête ensembliste.

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Points : 134
    Points
    134
    Par défaut
    Je vois pas trop comment faire ça en Javascript mais là ça marche. J'ai créé une connexion pour chacune des commandes.

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Juju54350 Voir le message
    Je vois pas trop comment faire ça en Javascript mais là ça marche. J'ai créé une connexion pour chacune des commandes.

    Quel rapport avec JavaScript ?

  5. #5
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Points : 134
    Points
    134
    Par défaut
    Parce que tu me parles de côté client et vu que Javascript est un langage client, ou alors j'ai pas compris...

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Juju54350 Voir le message
    Parce que tu me parles de côté client et vu que Javascript est un langage client, ou alors j'ai pas compris...
    Je parles coté client, vu du SGBD bien entendu. C'est à dire ce que tu fais dans ton code C# (donc le client du SGBD).

    Tu es sur que ce que tu fais n'est pas faisable avec une requête ensembliste du coté du SGBD ?

  7. #7
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Points : 134
    Points
    134
    Par défaut
    Tu veux dire avec des triggers ? Genre après des sélections faire la requête d'insertion ?

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Juju54350 Voir le message
    Tu veux dire avec des triggers ? Genre après des sélections faire la requête d'insertion ?

    J'ai un peu de mal à comprendre ce que viennent faire les triggers ici

    Tu devrais essayer de lire un tutoriel sur le SQL (il y en d'excellents sur le site) car il semble qu'il y ait quelques lacunes.

    Non, je veux dire tout simplement une requête unique ensembliste du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO Table1(champ1, .... champN) 
                  SELECT champ1, .... champN FROM TABLE2 
                  JOIN TABLE3 
                 ON criteres_jointure 
                  WHERE critere_extraction_table2
    etc ....
    Lire des données dans la base et les réécrire en passant par le client est quand même une drôle d'idée, si tru n'as pas d'interaction externe au SGBD à ce stade.

  9. #9
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Juillet 2010
    Messages : 292
    Points : 134
    Points
    134
    Par défaut
    Je ne connaissais pas ce type de requête effectivement.
    En fait, à la base, avant d'ajouter une ligne dans une table, je récupère des données à partir de l'adresse (Request). Je ne sais pas si on peut faire ça directement dans SqlServer.

  10. #10
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Juju54350 Voir le message
    Je ne connaissais pas ce type de requête effectivement.
    En fait, à la base, avant d'ajouter une ligne dans une table, je récupère des données à partir de l'adresse (Request). Je ne sais pas si on peut faire ça directement dans SqlServer.
    Là tu inverses les choses.

    - tu reçois les paramètres dans ton application web (client de Sql Server)
    - tu appelles une proc stoc sur le serveur qui reçoit les paramètres en question et fais ta mise à jour avec une requête ensembliste.
    - et c'est tout.

    Il n'est pas utile de chercher les complications plus loin.

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

Discussions similaires

  1. Vb.net ecrire un datareader dans fichier texte
    Par Gregney dans le forum VB.NET
    Réponses: 2
    Dernier message: 09/04/2015, 10h17
  2. Copier un datareader dans une list of
    Par shayw dans le forum VB.NET
    Réponses: 3
    Dernier message: 06/03/2014, 22h41
  3. Réponses: 7
    Dernier message: 17/03/2011, 08h23
  4. Datareader dans listview
    Par gwharl dans le forum Windows Forms
    Réponses: 1
    Dernier message: 28/05/2010, 13h10
  5. [SSIS][2k5] Utiliser un DataReader dans une tâche de script
    Par franculo_caoulene dans le forum SSIS
    Réponses: 2
    Dernier message: 21/02/2008, 12h58

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