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 :

Plusieurs requetes sql à la suite dans plusieurs tables !


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 73
    Par défaut Plusieurs requetes sql à la suite dans plusieurs tables !
    Bonjour à tous,

    Me revoilou pour la suite des évênements

    J'ai un datatable de 2 colonnes.
    Je fais une boucle qui liste chaque ligne du datable et qui doit faire environ 40 requetes par lignes.

    Mon code donne ça pour seuelement 2 requetes

    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
    For RowNumber = 0 To ObjetDataTabletranches.Rows.Count - 1
                'Table hlpimpairs
                Dim nbrehlpimpairs = ObjetDataTabletranches.Rows(RowNumber).Item("trimpaire")
                Dim strSQLhlpimpairs = "INSERT INTO hlpimpairs ( utilise, numero ) VALUES ('2', '5650" & nbrehlpimpairs & "');"
                Dim cmSQLhlpimpairs As New SqlCommand(strSQLhlpimpairs, ObjetConnection)
                cmSQLhlpimpairs.ExecuteNonQuery()
     
                'Table hlppairs
                Dim nbrehlppairs = ObjetDataTabletranches.Rows(RowNumber).Item("trpaire")
                Dim strSQLhlppairs = "INSERT INTO hlppairs ( utilise, numero ) VALUES ('2', '5650" & nbrehlppairs & "');"
                'Dim cmSQL As New SqlCommand(strSQL, ObjetConnection)
                Dim cmSQLhlppairs As New SqlCommand(strSQLhlppairs, ObjetConnection)
                cmSQLhlppairs.ExecuteNonQuery()
     
            Next

    Ce code fonctionne mais il va falloir que je le repete un bon paquet de fois. Tant pis, je le ferai si il faut.

    Mais bon si quelqu'un connait quelque chose de plus rapide à écrire, je suis preneur ....

    merci

    eric


    J'apprends, j'apprends ...

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 83
    Par défaut
    Une solution consisterai a creer une classe avec cette fonction, et a chaque fois que tu en as besoin tu l'appels.

    Ca te permet d'economiser un bon paquet de lignes.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 73
    Par défaut
    Merci Nico,
    Ben disons que j'en ai besoin tout en même temps.
    Lorsque clic sur bouton : environ 40 requetes dans environ 26 tables differents.


    Comment faire une classe sachant que la table, et les donnees changent à chaque requete ?

    merci

    eric

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 83
    Par défaut
    Bah en fait, tu passes en parametres la table, la base et les donnes.

    du genre

    Test.Tafonction(table, base, et tes donnees derrieres)

    Ta classe tu la crees et tu fais un truc du genre

    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
    .......
    Tafonction(ByVal base as string, Byval Tables as string, les donnees apres)
    {
    For RowNumber = 0 To ObjetDataTabletranches.Rows.Count - 1
                'Table hlpimpairs
                Dim nbrehlpimpairs = ObjetDataTabletranches.Rows(RowNumber).Item("trimpaire")
                Dim strSQLhlpimpairs = "INSERT INTO " & Table & " ( utilise, numero ) VALUES ('2', '5650" & nbrehlpimpairs & "');"
                Dim cmSQLhlpimpairs As New SqlCommand(strSQLhlpimpairs, ObjetConnection)
                cmSQLhlpimpairs.ExecuteNonQuery()
     
                'Table hlppairs
                Dim nbrehlppairs = ObjetDataTabletranches.Rows(RowNumber).Item("trpaire")
                Dim strSQLhlppairs = "INSERT INTO hlppairs ( utilise, numero ) VALUES ('2', '5650" & nbrehlppairs & "');"
                'Dim cmSQL As New SqlCommand(strSQL, ObjetConnection)
                Dim cmSQLhlppairs As New SqlCommand(strSQLhlppairs, ObjetConnection)
                cmSQLhlppairs.ExecuteNonQuery()
     
            Next
    }
    La par exemple je t ai mis comment tu peux passer une table en parametres, donc tu fais ton insert dans une table que tu determines dans ton code par exemple.

    Ca te demandera un peu de taf pour faire correctement ta classe mais l'avantage c'est k'apres tu economiseras bcp de lignes dans ton code

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 73
    Par défaut
    Ok, merci Nico, je vois ce que tu veux dire, jai compris le systeme !

    De plus le code serait effectivement plus "propre" dans une classe.

    par contre une question que je me pose :
    Si je garde les mêmes variables pour des requetes differentes, ça va marcher ?
    Je m'explique dans mon code j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim nbrehlpimpairs 
    Dim strSQLhlpimpairs 
    Dim cmSQLhlpimpairs
    pour une requete

    ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim nbrehlppairs 
    Dim strSQLhlppairs 
    Dim cmSQLhlppairs
    pour une autre requete

    tu vois ce que je veux dire ?


    merci

    eric

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 83
    Par défaut
    bah en fait c est pas un probleme

    parce que lorsque tu appels la fonction de ta classe du genre

    Test.Tafonction(les variables) , ce sont ces variables que tu envoies et apres c est receptionne dans ta classe

    Donc les variables dans ta classe prendrons la valeur que tu leurs envoies en parametres lorsque tu appels Test.Tafonction(variables)

    Je sais pas si je suis tres clair, mais en tout cas a chaque fois que tu vas appeler la fonction de ta classe les valeurs changeront pas de soucis

Discussions similaires

  1. Requete SQL avec critere dans 2 tables
    Par Mathieu51 dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 25/03/2011, 12h08
  2. Réponses: 2
    Dernier message: 15/11/2006, 16h59
  3. [SQL Server] rechercher dans plusieurs champs d'une table
    Par houla! dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/08/2006, 09h37
  4. Réponses: 3
    Dernier message: 15/05/2006, 17h29
  5. [SQL] Une requête dans plusieurs tables
    Par Anduriel dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/12/2005, 16h23

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