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

ASP.NET Discussion :

Problème avec Variable dynamique


Sujet :

ASP.NET

  1. #1
    Candidat au Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Problème avec Variable dynamique
    Bonjour,
    J'ai du code Classic ASP que je dois convertir en Asp.net
    Ce code me permet de faire afficher le contenu de plusieurs variable
    dynamique, ce bout de code me permet de traduire une page avec le choix de langue lors du login du User.
    Donc, dans la table Config, j'ai le nom de la variable avec la valeur en fonction de la langue choisi. Ce qui me permet de créer dynamiquement le nom de la variable avec sa valeur
    Voici un exemple du code
    Code VB.NET : 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
    '*** DEBUT TRADUCTION DES CHAMPS ***  
      oConnection10.ConnectionString = ConfigurationSettings.AppSettings("SqlServer")
      oConnection10.Open()
     
      M_NomScript = "RechNiveau4"
     
      sql10 = "SELECT NomChamp,Desc_" & M_LangueUser & " FROM Config WHERE (NomScript = '"& M_NomScript &"') "
      'Response.Write ("<font color="&"#FFFFFF"&">" & sql10 & "</font><BR>")
      Dim command10 As New SqlCommand(SQL10, oConnection10)
      Dim Rs10 As SqlDataReader = command10.ExecuteReader()
      Do While Rs10.Read() 
         M_y = rs10("NomChamp")
         M_x = rs10(1)
         Execute("M_" & M_y & " = M_x")
      Loop
      rs10.close
      oConnection10.dispose
    '*** FIN TRADUCTION DES CHAMPS ***

    Ce code fonctionne très bien avec le Asp Classic, mais comme vous pouvez le voir j'ai converti le code en asp.net et mon problème est au niveau du Execute.

    Est-ce que vous pouvez m'aider ?

    Merci et bonne journée

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Il n'y a pas d'équivalent à Execute en .NET. C'est du code compilé, pas du script, donc tu peux pas faire des trucs comme "Execute" ou "Eval" qui vont évaluer un bout de script arbitraire.

    Ce tutoriel décrit une façon de traduire une appli ASP.NET à l'aide d'une base de données, mais je ne sais pas si ça pourra s'adapter à ton cas

    Sinon, une solution possible :
    à la place de tes variables M_*, tu crées un dictionnaire (Dictionary(Of String, String)), où la clé est le nom du champ, et la valeur est la traduction

    Ca donne quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      Dim traductions As New Dictionary(Of String, String)()
      Do While Rs10.Read() 
         M_y = rs10("NomChamp")
         M_x = rs10(1)
         traductions(M_y) = M_x
      Loop
    Et ensuite tu accèdes à la traduction du champ "toto" via traductions("toto")

  3. #3
    Candidat au Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Je m'excuse mais je suis débutante dans le .net
    je viens d'essayer le code avec le Dictionary et j'ai le message d'erreur suivant
    BC30002: Type 'Dictionary' non défini
    Voici le code avec le dictionary

    Code VB.NET : 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
    '*** DEBUT TRADUCTION DES CHAMPS ***  
      oConnection10.ConnectionString = ConfigurationSettings.AppSettings("SqlServer")
      oConnection10.Open()
     
      M_NomScript = "RechNiveau4"
     
      Dim traductions As New Dictionary(Of String, String)()
     
      sql10 = "SELECT NomChamp,Desc_" & M_LangueUser & " FROM Config WHERE (NomScript = '"& M_NomScript &"') "
      'Response.Write ("<font color="&"#FFFFFF"&">" & sql10 & "</font><BR>")
      Dim command10 As New SqlCommand(SQL10, oConnection10)
      Dim Rs10 As SqlDataReader = command10.ExecuteReader()
      Do While Rs10.Read() 
         M_y = rs10("NomChamp")
         M_x = rs10(1)
         'Execute("M_" & M_y & " = M_x")
         traductions(M_y) = M_x
      Loop
      rs10.close
      oConnection10.dispose
    '*** FIN TRADUCTION DES CHAMPS ***
    merci de votre aide

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Il doit te manquer un Imports :

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    Imports System.Collections.Generic

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/12/2006, 09h57
  2. Problème avec variable dynamique
    Par moyjunior dans le forum Linux
    Réponses: 2
    Dernier message: 22/11/2006, 11h46
  3. Problème avec menus dynamiques
    Par narwydann dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/04/2006, 15h28
  4. [MySQL] [BDD] Problème avec SELECT "dynamique"
    Par Vecine dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/03/2006, 11h11
  5. Problème avec tableaux dynamiques et procédure
    Par K20 dans le forum Langage
    Réponses: 11
    Dernier message: 06/01/2006, 20h51

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