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 :

Variable au nom "dynamique"


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Points : 29
    Points
    29
    Par défaut Variable au nom "dynamique"
    Bonjour à tous,

    après quelques recherches, j'ai trouvé des messages traitant d'une gestion dynamique des variables telles var1, var2, var3, var4,.... var(n) par l'utilisation des tableaux

    Pour ma part, m'étant connecté à une DB déjà existante, je me retrouve avec une table contenant des variables telles que VARIABLE_(x)_T_(y).
    x et y variant de 1 à 10 => soit 100 variables existantes.

    A partir du moment où j'ai pu déterminer quelles étaient les valeurs de x et y, comment faire pour accéder à la variable (qui serait par ex. VARIABLE_3_T_7) ?

    Merci pour toute aide


    Cheverny

  2. #2
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Points : 6 775
    Points
    6 775
    Billets dans le blog
    4
    Par défaut
    En gros, tu cherches à pouvoir lancer des connexion à ta bdd (et donc à tes procédures stockées) à partir de noms de variables que tu ne connais pas à l'avance?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par Lyche Voir le message
    En gros, tu cherches à pouvoir lancer des connexion à ta bdd (et donc à tes procédures stockées) à partir de noms de variables que tu ne connais pas à l'avance?
    Non pas vraiment.
    Je suis déjà connecté et j'ai rempli un row avec le record qui m'intéressait (suite à un SELECT des plus classiques).

    et j'aurais ensuite

    int maValeur;
    maValeur = Convert.ToInt32(row["VARIABLE_(x)_T_(y)"]

    x et y étant déterminés par une méthode abc appelée avant

  4. #4
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Points : 6 775
    Points
    6 775
    Billets dans le blog
    4
    Par défaut
    Tu pourrait (peut-être) faire quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maValeur = Convert.ToInt32(row["VARIABLE_" + Convert.ToString(x) + "_T_" + Convert.ToString(y)]
    Par défaut tu ne peux pas concaténer les données Int, puisque l'opérateur de concaténation est + (j'ai jamais utilisé &, je sais qu'en vb.net on s'en sert mais en c# j'ai jamais testé) Donc il te faut convertir ton chiffre en string et tu peux le concat. Alors pour éviter de te prendre la tête à convertir à chaque fois, tu devrais peut-être voir pour les récupérer de base en string (ça soulage l'appli d'éviter les manip inutiles et les multiples conversion)

    Mais juste une question comme ça. Tu as mis tes données dans un tableau ou autre? un dataset? tu ne pourrais pas utiliser les positions de ces données plutôt que les noms de variable?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maValeur = (int)monReader.getSqlInt32(0)

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Points : 29
    Points
    29
    Par défaut
    Merci pour la réponse. Je vais essayer les 2 approches.

    Les données sont placées dans DataRow.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Points : 29
    Points
    29
    Par défaut
    Encore merci

    j'utilise ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maValeur = Convert.ToInt32(row["VARIABLE_" + Convert.ToString(x) + "_T_" + Convert.ToString(y)]
    et cela fonctionne comme je le souhaite

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

Discussions similaires

  1. variable a nom dynamique
    Par yvesall dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/08/2007, 01h10
  2. [PL/SQL][Oracle 8i] Variable de nom dynamique
    Par GoLDoZ dans le forum Oracle
    Réponses: 17
    Dernier message: 27/06/2006, 15h36
  3. [xsl]simuler le mecanisme OO de "liaison dynamique"
    Par philemon_siclone dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 19/12/2003, 11h34

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