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

Scripts/Batch Discussion :

Combobox avec une variable contenant de multiple valeur [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2017
    Messages : 15
    Par défaut Combobox avec une variable contenant de multiple valeur
    Bonjour à tous,

    Je suis débutant en powershell et j'apprend sur le tas.

    Je travaille actuellement sur un programme qui à besoin d'une connexion sql pour récupérer des donnée et pré remplir certains champs de mon formulaire.
    Dans ce programme j'ai créé un combobox auquel je souhaite y attacher une variable pour avoir une liste complète des différentes valeurs.
    Cette variable stock de multiples valeurs grâce à une requête sql.

    Voici une version simplifié de mon programme :
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    # sql request
    [void][system.reflection.Assembly]::LoadWithPartialName("MySql.Data")
    $ConnStr = “server=xxxxxxx;uid=xxxxxx;password=xxxxxx;database=xxxxxx;Port=xxxxx”
    $ObjMysql = New-Object MySql.Data.MySqlClient.MySqlConnection($ConnStr)
    $ObjMysql.Open()
      
    $req = "SELECT monchamp FROM matable"
    
    $SQLCommand = New-Object MySql.Data.MySqlClient.MySqlCommand($req,$ObjMysql)
    $MySQLDataAdaptater = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($SQLCommand)
    $MySQLDataSet = New-Object System.Data.DataSet
    $RecordCount = $MySQLDataAdaptater.Fill($MySQLDataSet, "Query") 
    $MySQLDataSet.Tables["Query"] 
    
    $res = $MySQLDataSet.Tables["Query"]  
    
    $ObjMysql.close()
    
    # Create form
    [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 
    [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
    $objForm = New-Object System.Windows.Forms.Form 
    $objForm.Text = "Test"
    $objForm.Size = New-Object System.Drawing.Size(300,200) 
    $objForm.StartPosition = "CenterScreen"
    $objForm.KeyPreview = $True
    
    # add combobox
    $textWho = New-Object System.Windows.Forms.Combobox
    $textWho.Location = New-Object System.Drawing.Point(20,75) 
    $textWho.Size = New-Object System.Drawing.Size(140,10)
    $textWho.DropDownStyle = "DropDownList"
    $textWho.Items.AddRange = $res
    
    $objForm.Controls.Add($textWho)
    
    # Add Ok Button
    $OKButton = New-Object System.Windows.Forms.Button
    $OKButton.Location = New-Object System.Drawing.Size(75,120)
    $OKButton.Size = New-Object System.Drawing.Size(75,23)
    $OKButton.Text = "OK"
    $OKButton.Add_Click{
                        $objForm.Close()
                        }
    
    $objForm.Controls.Add($OKButton)
     
    $objForm.Topmost = $True
    $objForm.Add_Shown({$objForm.Activate()})
    [void] $objForm.ShowDialog()
    Ma variable qui stock les différentes valeurs est : $res
    En affichant cette variable j'ai bien toutes mes valeurs, mais je n'arrive pas à la lier à ma dropList.

    Ma ligne qui pose problème est :
    $textWho.Items.AddRange = $res

    J'ai essayé avec des array :
    $textWho.Items.AddRange = $res[0], $res[1]....
    mais il ne considère pas ma variable comme multiple mais comme une seule et même donnée.

    Si quelqu'un pouvais m'éclairer

    Merci pour le temps consacré sur mon problème.
    PanikPa

  2. #2
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2017
    Messages : 15
    Par défaut
    J'ai refait quelques tests, ma variable ne me renvoie aucune valeur.

    Si quelqu'un sait comment stocker le résultat d'une requête SQL dans une variable je suis preneur !

  3. #3
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Par défaut
    salut

    regarde ce forum pour voir si tu comprend et si tu trouve la solution a ton problème

    sinon on regarde ensemble de plus prêt !!

    edit : je me m'etait tromper de site !!

  4. #4
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2017
    Messages : 15
    Par défaut
    Citation Envoyé par 6ratgus Voir le message
    salut

    regarde ce forum pour voir si tu comprend et si tu trouve la solution a ton problème

    sinon on regarde ensemble de plus prêt !!

    edit : je me m'etait tromper de site !!
    C'est exactement se que je cherchais !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $MySQLDataSet.Tables["Query"] | ForEach-Object {$textWho.Items.add($_.Surname)}
    Je me doutais bien qu'il devait y avoir une boucle quelque part.
    $_.Surname est le nom de ma colonne d'où sont extraient mes données.

    Un autre post qui m'a aussi aidé :
    https://www.developpez.net/forums/d1...-combobox-wfp/

    Merci 6ratgus ! tous fonctionne super bien !!

    Bonne journée à toi

  5. #5
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Par défaut
    une autre écriture possible si tu a récupère plusieurs champs dans ta tables, c'est de mettre le nom de champ dont ta bessoin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $res = $MySQLDataSet.Tables["Query"].nom_du_champ_dans_ta_table
    dernière choses attention au typage des données !!

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

Discussions similaires

  1. [Oracle] Requête avec une variable contenant une chaine de caractères accentué non trouvé
    Par chris0938 dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 07/01/2011, 21h23
  2. Réponses: 1
    Dernier message: 22/04/2009, 21h30
  3. Lié un combobox avec une arryalist contenant des objects
    Par fab2050 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/11/2008, 10h47
  4. Réponses: 2
    Dernier message: 09/11/2007, 15h32
  5. Réponses: 6
    Dernier message: 02/06/2007, 01h07

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