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 :

table dans une requete [Débutant]


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Par défaut table dans une requete
    boujour,
    je voudrai savoir comment faire pour que dans une requete la table prend le nom réel de la table ciblée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Me.1.Checked And Me2.Checked
                    pnomtable = "TableETE"
    Me.1.Checked And Me3.Checked
                    pnomtable = "Tablenuit"
     ........      
     
     SQLstr = "INSERT INTO  pnomtable (champ1) VALUES (1) "
    merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    En faisant comme ça, ça devrait marcher :
    Code VB.Net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SQLstr = String.Format("INSERT INTO  {0} (champ1) VALUES (1) ", pnomtable)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Par défaut
    merci est il possible d'avoir ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLstr = String.Format("INSERT INTO  {0} (champ1) VALUES ('Recherche_AVI.Text') ", pnomtable)
    'Recherche_AVI.Text' etant une textbox
    de plus pnomtable indique qu'il est utilisé avant qu'une valeur ne lui soit assignée(mais pnomtable a bien pris la valeur de la table que j'ai selectionné en fonction des checkbox.)
    faut il prendre en compte ce message?

  4. #4
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Comme dit ici : http://www.developpez.net/forums/d13...e/#post7279487


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLstr = String.Format("INSERT INTO  {0} (champ1) VALUES ('" & Recherche_AVI.Text & "') ", pnomtable)
    Et pour ce qui est de la valeur non-assigné, tu peux l'instancier à String.Empty, et la tester avant l’exécution de la requête.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Par défaut
    peut on faire la meme chose pour effectuer une lecture?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    For i = 1 To 4
                        cmd.CommandText = String.Format("SELECT  (Chm)from {0} WHERE [ID] =" & i, pnomtable)

  6. #6
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Du coup tu fais 4 Select à la suite, ça deviendrait vite lourd pour ta BDD quand tu auras 10.000 lignes ... De plus cela ne fonctionne que si les Id commencent à 1 jusque x, et le jour où tu voudrais plus que 4, tu devras modifier ton code, le jour où tu supprimes une de tes lignes qui a l'identifiant 2 (par ex), alors tu auras un retour vide etc etc. En gros, non, ce n'est pas à faire.

    Tu peux passer par un DataReader. Voir : http://dotnet.developpez.com/articles/ado1/vbnet/#LVI

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Par défaut
    est ce que je lire 2 tables en meme temps?en rajoutant a la requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                Dim cmd As New OleDbCommand("SELECT  FROM {0} WHERE [ID] =?", pnomtable),cnn)

  8. #8
    Invité
    Invité(e)
    Par défaut
    Je pense que si tu ne fais pas des recherches tu ne vas pas trop bien t'en sortir.
    Développez en propose de bons ici.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Par défaut
    merci pour le lien,j'ai pu regarder ce week end a tout cela mais je n'ai pas trouver un cas de figure et n'ayant pas les medias a porter de ma base j'aimerai savoir si cette instruction est réalisable ,et fonctionnelle.
    pour ce qui est d'avoir 2 tables dans une requete j'ai pu voir comment si prendre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     Dim UneInfo As String = Nothing
            Using cnn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\base1.mdb")
     Dim cmd As New OleDbCommand(("SELECT (Chm) from {0} WHERE [ID]= ?", table1), cnn)
    cmd.Parameters.Add("ID", System.Data.OleDb.OleDbType.Integer)
                cmd.Parameters("ID").Value = L_Info
                cnn.Open()
                UneInfo = cmd.ExecuteScalar()
            End Using
    merci

  10. #10
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2012
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 337
    Par défaut
    Bonjour,

    Un petit effort de votre part serrait appréciable

    j'aimerai savoir si cette instruction est réalisable
    Quelle instruction???
    Je présume que c'est au sujet de la requête sur deux tables mais :
    pour ce qui est d'avoir 2 tables dans une requête j'ai pu voir comment si prendre.
    Donc quelle est la question?

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Par défaut
    l'instruction dont je fais reference est celle ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim cmd As New OleDbCommand(("SELECT (Chm) from {0} WHERE [ID]= ?", table1), cnn)

  12. #12
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2012
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 337
    Par défaut
    Est ce que vos tables ont un champ de jointure?

    Si oui, ça donne un truc du genre :
    (T1 = Table 1, T2 Table 2, C1=champ côté clé primaire, C2=champ côté clé étrangère, C3, C4,... appartenant à T2)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim cmd As New OleDbCommand(("SELECT C1, C3, C4 FROM {0} INNER JOIN {1} ON T1.C1=T2.C2 WHERE C1= ?", T1,T2), cnn)
    Si non, deux requêtes.

    Et sinon 2, vous pouvez répéter la question?
    (Stéphanie de monaco ...)

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

Discussions similaires

  1. regroupement de tables dans une requete avec chiffre MAX
    Par db48752b dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 15/10/2009, 12h02
  2. Réponses: 4
    Dernier message: 20/08/2009, 04h22
  3. trouver les tables dans une requete sql
    Par bguihal dans le forum SQL
    Réponses: 5
    Dernier message: 09/03/2009, 15h34
  4. multiplier des valeurs de 2 tables dans une requete
    Par metaldan dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/01/2009, 11h17
  5. Variable d'une table dans une requete non basée sur cette table
    Par MickaelKael dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 22/10/2007, 10h46

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