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

Windows Forms Discussion :

Localisation et base de donnée


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Par défaut Localisation et base de donnée
    Bonjour à tous,
    Me voilà confronté à deux nouveaux problèmes.

    Le premier porte sur les des problèmes de localisations, j'ai essayé divers tutos sur internet mais visiblement pas à jour avec la version de visual studio que j'ai.
    Enfin bref, j'ai créé les fichiers ressources j'ai donc:

    Form1.cs->Form1.resx
    Form1.fr.resx
    Form1.en.resx
    Form1.Designer.cs

    Pour garder en mémoire j'ai décidé d'utiliser le fichier app.config de l'application, j'ai donc ajouté une ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      <appSettings>
        <add key="Key0" value="FrenchCulture" />
      </appSettings>
    Donc ensuite je procède comme suit pour savoir la langue que l'utilisateur a choisi(au passage il me dit que configurationsettings est obsolète mais quand je remplace par configurationmanager cela ne marche pas il me dit qu'il n'est pas défini dans le contexte actuel
    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
     public frmSaisiesBoutons()
            {
     
                if (Language == "FrenchCulture")
                {
                    System.Threading.Thread.CurrentThread.CurrentUICulture = FrenchCulture;
                    RM = new System.Resources.ResourceManager("Localisation.Form1", typeof(frmSaisiesBoutons).Assembly);
                }
                else if (Language == "EnglishCulture")
                {
                    System.Threading.Thread.CurrentThread.CurrentUICulture = EnglishCulture;
                }
                else
                {
                    System.Threading.Thread.CurrentThread.CurrentUICulture = FrenchCulture;
                    RM = new System.Resources.ResourceManager("Form1.fr", typeof(frmSaisiesBoutons).Assembly);
                }
                InitializeComponent();
     
            }
    Je peux ainsi définir la culture du programme et ensuite je comptais afficher mon texte comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.accueil_titre.Text = RM.GetString("NEW_PARTIE_TITRE");
    Sauf que j'ai un problème avec ce RM, j'ai essayé toutes les combinaisons possibles dans la parenthèse, j'ai été sur l'aide de microsoft, sans pour autant avoir de résultats concluants :s


    Sinon mon autre problème concerne les bases de donnée, quel est le code pour ajouter une connexion?
    Par exemple dans une partie de mon programme il m'arrive de dupliquer une base de donnée et j'aimerais ensuite pouvoir me connecter sur cette seconde base de donnée. J'avais pensé à quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ConfigurationSettings.connectionStrings.Add
    Sauf qu'après je sais plus trop quoi mettre comme arguments :s


    Bonus Track: C'est si compliqué que ça de créer des listes déroulantes pour choisir la langue ou même des tableaux (graphiques) pour clarifier une partie de mon programme sans passer par l'éditeur graphique?
    J'ai essayé de les faire dans un nouveau projet et de recopier le code mais ils ne s'affichent pas.
    Ou alors j'ai pas capté un truc parce moi depuis le début j'ai qu'une page pour le design que je modifie en appelant des fonctions sauf que je galère pour insérer de nouveaux éléments du coup, j'ai du rater un truc je pense.

    J'espère que vous saurez m'éclairer,

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 64
    Par défaut
    COucou,

    Tu as quel version de VS? parce que la version 2008 est disponible en express (gratuits et il manque peu de fonctionnalité) et la version VS 2010 est dispo en beta (mais assez stable, elle est pas mal faut juste faire gaffe que si tu enregistre en 2010 tu aura du mal à repasser en 2008).


    Sinon pour les langues et les parametres, je te conseil fortement de ne pas faire de test dans ton programme mais de crée un petit projet de test. Un très bon tuto sur la localisation est dispo :http://morpheus.developpez.com/localisationdotnet/ et pour les paramètres: http://freddyboy.developpez.com/dotn...olatedstorage/.

    Mais surtout évite de crée à la main, le visuel est la pour t'aider à crée pas mal de truc.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Par défaut
    D'accord merci

    J'ai la version 2008 express en effet.
    Pour la localisation c'est en effet le tutoriel que j'avais suivi mais cela ne correspond plus tout à fait avec ma version de visual studio, et donc je bloque sur le point que j'ai cité ci dessus

    Mais si tu dit qu'il faut tout faire avec l'éditeur un problème me vient: Peut-on créer plusieurs pages avec l'éditeur, enfin la réponse est oui, c'est à dire plusieurs fichiers .cs, comment les utiliser ensuite?
    Moi pour le moment je restais toujours sur le meme FOrm1.cs, que je modifiais à l'aide de fonctions. Mais si je veux des tableaux et d'autres nouveaux objets, et que je dois les faire seulement avec l'éditeur comment je fais? Sachant qu'ils ne sont pas sur ma page principale. Je cré le tableau sur la page principale et je le met en invisible? Je doute que ça soit la bonne solution.
    C'est un problème qui doit être tellement simple pour vous que vous aurez surement du mal à le comprendre

    Merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 64
    Par défaut
    Citation Envoyé par r0seBa Voir le message
    D'accord merci
    Mais si tu dit qu'il faut tout faire avec l'éditeur un problème me vient: Peut-on créer plusieurs pages avec l'éditeur, enfin la réponse est oui, c'est à dire plusieurs fichiers .cs, comment les utiliser ensuite?
    Moi pour le moment je restais toujours sur le meme FOrm1.cs, que je modifiais à l'aide de fonctions. Mais si je veux des tableaux et d'autres nouveaux objets, et que je dois les faire seulement avec l'éditeur comment je fais? Sachant qu'ils ne sont pas sur ma page principale. Je cré le tableau sur la page principale et je le met en invisible? Je doute que ça soit la bonne solution.
    Tout n'est malheureusement pas réalisable avec le visuel mais il permet quand même d'en faire beaucoup (genre la localisation ^^). Pour ce qui est des variables et autre objets tu dois les crée par le code bien sur.

    Qu'entend tu par "créer plusieurs pages"? si c'est crée plusieurs formes tu dois utiliser ce code la:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    formMaform2 myForm = new formMaform2();
    myForm.Show();

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Par défaut
    Ah voilà c'est exactement la réponse qu'il me fallait, merci.
    Grace aux tutoriels(et surtout par tatonnement ) j'ai réussi à pouvoir gérer les langues de mon application, merci


    Ensuite vient un autre problème celui des bases de donnée, le tutoriel n'explique pas comment ajouter une base de donnée ou comment modifier les accés.

    D'ailleurs une question me vient à l'esprit:
    Le fichier Config une fois que j'aurais compilé mon logiciel, il sera dans l'exe ou restera à part? parce qu'il contient quand meme les mots de passe de la base de donnée, ce qui m'amène à me poser une nouvelle question - J'ai vu sur internet qu'il était facile de décompiler un exe - alors que me conseillez vous en terme de sécurité pour mon code/application?

    Merci

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Par défaut
    Bonjour !
    EN cherchant sur internet, j'ai finalement pondu le code ci dessous dans le but d'ajouter une connexion dans le fichier app.config :
    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
     
    System.Configuration.Configuration config =
                            ConfigurationManager.OpenExeConfiguration(
                            ConfigurationUserLevel.None);
                    ConnectionStringSettings csSettings =
                            new ConnectionStringSettings("BM2010.Properties.Settings." + textBox_new_partie.Text + "ConnectionString",
                            "Data Source=|DataDirectory|\\Database\\" + textBox_new_partie.Text + ".sdf;Password=*************;Persist Security Info=True", "Microsoft.SqlServerCe.Client.3.5");
     
                    ConnectionStringsSection csSection =
                        config.ConnectionStrings;
     
                    csSection.ConnectionStrings.Add(csSettings);
     
     
                    config.Save(ConfigurationSaveMode.Modified);
    Cela ne me renvoie plus aucune erreur, cependant, le fichier config du dossier release ne contient pas de nouvelle entrée, (ni le fichier config du projet).

    J'espère que vous saurez m'éclairer, Merci d'avance, r0seBa

  7. #7
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    A chaque fois que tu va compiler, le fichier de configuration va être regénéré, il va donc être une copie exacte de la version que tu as dans Visual Studio.

    Donc si tu ne regarde pas de suite après avoir fermé l'application, les données seront perdues.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 64
    Par défaut
    Pour faire de la base de donnée, il y a les 3 lettres presque magique (rien n'est magique en informatique ): ADO.

    Qui est vraiment pas mal et assez facile à gérer avec le visuel.


    Pour ce qui est des données sensible, il faut pas non plus virer dans la parano.
    Ton application est une appli maison utiliser par quelques personnes ou elle est destinée à une distribution "massive"?

    Dans le premier cas la sécurité est relative, dans le deuxiéme cas cela dépens aussi de la "valeur" de ta base de données (si c'est des données bancaire ou du même genre, oui il faut protéger l'exécutable).

    A savoir qu'il est impossible en C# de crypter son code puisque ce dernier dois être lisible par la machine (le CLR toussa toussa ) mais il est toujours possible de faire de "l'obfuscation" afin de rendre le code lisible par la machine mais tellement bordélique qu'il est illisible pour un être humain.


    Pour ce qui est du fichier config, dans l'explorateur de solution, tu sélectionnes le fichier App.config et dans ses propriétés , tu met la valeur "ressource incorporée" pour l'option "Action de génération" et HOP ton fichier est compiler dans l'exécutable donc moins accessible.

  9. #9
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Par défaut
    D'accord merci
    Mon application se tourne plutot vers une distribution massive (enfin pas trop non plus :p ).

    Sinon pour mon histoire de page, j'ai essayé le myform.Show();
    Mais le problème c'est que ça crée une nouvelle fenetre. J'aimerais juste par exemple pouvoir jongler entre plusieurs parties de mon application facilement.

    Par exemple sur un site web: il y a la page accueil.php et la page inscription.php
    Quand je clique sur un lien qui m'amène à inscription.php le design est désormais celui de inscription.php, sans pour autant que firefox n'ait ouvert une nouvelle fenetre.

    Alors maintenant transposons cet exemple au c#, comment est-ce possible ?
    Si je cré un nouveau windows form ça m'ouvrira automatiquement une nouvelle fenetre non?

    Je sais pas si c'est plus clair désormais.

    Au passage j'ai une question d'odre graphique: comment enlever la bordure sur les boutons? J'ai fait pas mal de recherches sur le net et à part remplacer la texture du bouton par une image (en passant par le mode flat) j'ai pas trouvé.

    Merci d'avance, r0seBa

  10. #10
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Pour ton histoire de page, tu peux le faire avec des UserControl. Chaque UserControl représentera une des "pages" de ton application, et quand tu change, il te suffira de supprimer l'ancien UserControl de la propriétés Controls de ta Form et d'y ajouter ton nouveau UserControl.

    Qu'est-ce que tu entends exactement pas la bordure du bouton ?
    Comment voudrais-tu qu'il soit ?
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  11. #11
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Par défaut
    Merci beaucoup, j'ai pu grace à toutes tes indications y voir plus clair.

  12. #12
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Par défaut
    J'aurais juste une dernière question qui concerne la localisation dont j'ai parlé au début de ce sujet.

    J'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            RM = new System.Resources.ResourceManager("BM2010.frmSaisiesBoutons", typeof(frmSaisiesBoutons).Assembly);
    string variable = RM.GetString("PAYS");
    variable contient donc France par exemple. est-il possible en ayant france de connaitre le nom qui correspond à france dans le fichier rsx?
    Pour ce cas là c'est "PAYS".

    J'aimerais donc en effectuer l'opération inverse de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string variable = RM.GetString("PAYS");
    Je sais pas si c'est possible mais en tout cas ça me faciliterait grandement la vie pour récupérer des données d'une combobox.

    Parce que en fait les value de ma combobox changent en fonction de la langue, alors il m'est difficile ensuite de récupérer l'id du pays (pour une liste affichant tous les pays par exemple)

    Merci

  13. #13
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Par défaut
    J'ai entendu parlé de dataset, mais cela ne semble pas correspondre totalement à ce que je recherche.

    Merci

Discussions similaires

  1. localiser une chaine de caractère dans une base de données
    Par hayassinet dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/10/2010, 18h13
  2. localiser une chaine de caractère dans une base de données
    Par hayassinet dans le forum Accès aux données
    Réponses: 3
    Dernier message: 26/10/2010, 11h19
  3. SQL 2008 : Localisation des bases de données système
    Par Baquardie dans le forum Administration
    Réponses: 2
    Dernier message: 16/07/2010, 15h10
  4. localisation de la base de donnée ?
    Par pseudomh dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/03/2005, 20h33
  5. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16

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