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 :

Utilisation de My.Settings


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut Utilisation de My.Settings
    bonjour,

    Je cherche à lire et écrire programmatiquement dans les paramètres de l'application (onglet Paramètres du projet sus Visual studio et My.Settings en VB.NET).

    Lorsque je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    My.Settings.Database = "toto"
    My.Settings.Save()
    Nota : je me suis inspiré de ce topic qui ressemble en gros à ce que je veux faire.

    Je ne retrouve pas "toto" en face du paramètre Database dans l'onglet Paramètres de VS2010.
    Pourtant par le code, je vérifie que la valeur est bien conservée et réutilisée à chaque utilisation de l'appli.

    est-ce normal ?
    EDIT : si c'est normal, je me demande où sont stockés ces paramètres.

    Confirmez-vous que l'on ne peut pas modifier programmatiquement un paramètre de type (Chaîne de Connection) et qu'il faut donc utiliser un paramètre de type string pour les connections aux bases de données si l'on souhaite modifier ce paramètre en cours d'appli ?

    Dans ce cas, j'ai un autre problème : pour fonctionner, mon dataset typé qui représente l'ensemble de ma BdD (l'onglet XSD) fait référence à cette fameuse chaîne de connexion. Si je change sont type en String, le dataset typé ne se charge plus...

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir noftal,

    lorsque tu enregistres ton paramètre il est inscrit sur ton disque dur dans un fichier nommé "user.config" situé dans ce chemin :

    "C:\Users\%USERNAME%\AppData\Local\%YOUR_APP_NAME%\........."

    Si tu t'attends à trouver dans l'EDI la valeur "toto" dans le tableau alors tu peux toujours attendre ça ne fonctionne pas ainsi !
    La valeur est utilisée par l'application lors de l'exécution et non dans l'EDI.

    Si tu vois apparaître une valeur dans les paramètres de ton projet alors ça veut tout simplement dire que tu as mis une valeur par défaut.

    Voilà pour ta première question. Pour le reste je laisse le soin aux spécialistes de te répondre.

    Bonne soirée.

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    je confirme

    après c'est rarement le 1er choix, mais néanmoins sur des petits projets ca peut suffire (et ca fonctionne donc ^^)

    par contre pour pouvoir modifier ces paramètres, il faut qu'ils soient de type "Utilisateur" et pas du type "Application"
    par défaut ils sont en mode application, et là ca n'est pas modifiable (ca serait donc totalement inutile)

    et ca créé en effet un fichier xml dans un dossier de l'utilisateur ; changer l'exe de machine reprend donc le paramètre par défaut
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Alors justement, le fait que ces paramètres soient enregistrés pour chaque utilisateur me pose un pb.
    Pour vous faire comprendre, je dois donc vous exposer mon besoin fonctionnel.
    Mon appli fonctionne autour d'une base de données locale. Il s'agit d'une gestion de bibliothèque.
    Lorsque l'utilisateur lance l'appli pour la première fois, l'appli doit vérifier si une base a été déjà renseignée (1). Sinon, il demande à l'utilisateur à quel endroit il souhaite implanter le fichier de bdd (2). Une fois ceci fait l'appli doit donc directement interroger la bdd là où elle se trouve et les étapes 1 et 2 sont sautées.

    Pour 1 et 2 voici les solutions que j'avais imaginées :
    (1) : test sur la chaine ConnectionString implantée dans les paramètres du projet de type (chaîne de connection), paramètre au niveau de l'appli. Si cette chaine est vide on passe à 2
    (2) : on stocke dans ConnectionString le chemin d'accès à la bdd spécifié par l'utilisateur et on copie une BdD vierge stockée dans les "resources" vers l'emplacement désigné.

    Il ne faut pas que, si je change d'utilisateur, une autre bdd soit créée d'où mon objection initiale.

    Cependant la solution évoquée ne marche pas. Comme vous l'avez dit, on ne peut pas modifier un paramètre de portée "application".

    Donc, par rapport à cette exposé, avez-vous une solution à suggérer ?

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    my.Settings n'est qu'une des solutions possibles pour avoir des paramètres
    et comme je l'ai dit elle est rarement utilisée, on le voit elle ne sied pas à ton cas
    utilise donc autre chose comme un fichier à côté de l'exe (.ini, .xml)
    la sérialisation xml est pratique pour quelques paramètres, ca fait peu de code à écrire
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour noftal,

    Pourquoi ne pas utiliser 1 fichier de configuration ".ini" ou ".xml" ?

    Bien qu'un simple fichier ".ini" devrait suffire pour stocker aussi peu de paramètres...


    PS :
    le fichier de paramètres du type "user.config" a ses limites : lorsque tu décides de mettre à jour ton programme alors le fichier de config existant ne peut plus être utilisé car son répertoire racine est une sorte de hachage généré à partir des informations suivantes ; ProductName, ProductVersion, ...etc....

    A+


    EDIT : Pol63 a été plus rapide ......

  7. #7
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    N'ayant pas de connaissance sur les fichiers INI ou XML (ni sur la sérialisation), je me suis orienté vers le stockage des paramètres dans le registre que je maîtrise un peu déjà.
    Cela dit, il souvent conseillé de stocker les paramètres dans HKEY_CURRENT_USER alors que, dans mon cas, il vaudrait mieux stocker ma chaine de connexion dans HKEY_LOCAL_MACHINE si j'ai bien compris

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

Discussions similaires

  1. [JSTL] Erreur à l'utilisation de <c:set />
    Par welcome_59 dans le forum Taglibs
    Réponses: 2
    Dernier message: 07/07/2008, 08h26
  2. Utilisation du c:set
    Par romaintaz dans le forum JSF
    Réponses: 4
    Dernier message: 07/02/2008, 15h12
  3. [2.2.1][Général] Utilisation des data sets
    Par erwan.bodere dans le forum BIRT
    Réponses: 1
    Dernier message: 21/11/2007, 09h17
  4. Réponses: 1
    Dernier message: 28/04/2007, 00h07
  5. Réponses: 2
    Dernier message: 31/10/2006, 16h29

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