none
relativiser le chemin vers my database c# RRS feed

  • Question

  • bonjour,
    dans mon application c# j'utilise une base de donnees access que j'appele comme ca avec un chemin absolue :

    public CnxAcces()
            {
                String chaineCnx = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Users\\admin\\Documents\\Visual Studio 2010\\Projects\\appli_gestcom\\appli_gestcom\\DB_GEST.mdb";
                cnx = new OleDbConnection(chaineCnx);}
    

    elle se situe dans le repertoire de l'application

    je veux rendre le chemin relative pas absolue
    avez vous une idée

    vendredi 8 juin 2012 04:31

Réponses

  • Bonjour,

    System.IO.Directory.GetCurrentDirectory() permet de récupérer le répertoire courant de l'application:
    http://msdn.microsoft.com/fr-fr/library/system.io.directory.getcurrentdirectory.aspx

    à partir de la, vous pourriez faire quelque chose qui ressemble à ca:

    String chaineCnx = String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}\DB_GEST.mdb", Directory.GetCurrentDirectory());


    Charles HETIER http://www.charly-studio.com

    • Proposé comme réponse mmw01 vendredi 8 juin 2012 07:43
    • Marqué comme réponse Ciprian Duduiala mercredi 13 juin 2012 07:09
    vendredi 8 juin 2012 07:30
  • Bonjour,

    Par contre le répertoire courant peut être différent du répertoire de démarrage de l'application, utiliser plus tôt la prospérité static Application.StartupPath :

    String chaineCnx = String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}\DB_GEST.mdb", Application.StartupPath);

    Cordialement.

    vendredi 8 juin 2012 08:00
    Auteur de réponse
  • Bonjour,

    On peut aussi utiliser le "placeholder" |DataDirectory| (ou sans doute tout autre nom) ce qui permet :

    1) de pouvoir définir dans le fichier de config de l'application ce que l'on veut
    2) on utilisant le (ou donc sans doute les) "placeholders" que l'application aura défini à son lancement


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    vendredi 8 juin 2012 10:54
    Modérateur

Toutes les réponses

  • Bonjour,

    System.IO.Directory.GetCurrentDirectory() permet de récupérer le répertoire courant de l'application:
    http://msdn.microsoft.com/fr-fr/library/system.io.directory.getcurrentdirectory.aspx

    à partir de la, vous pourriez faire quelque chose qui ressemble à ca:

    String chaineCnx = String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}\DB_GEST.mdb", Directory.GetCurrentDirectory());


    Charles HETIER http://www.charly-studio.com

    • Proposé comme réponse mmw01 vendredi 8 juin 2012 07:43
    • Marqué comme réponse Ciprian Duduiala mercredi 13 juin 2012 07:09
    vendredi 8 juin 2012 07:30
  • Bonjour,

    Par contre le répertoire courant peut être différent du répertoire de démarrage de l'application, utiliser plus tôt la prospérité static Application.StartupPath :

    String chaineCnx = String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}\DB_GEST.mdb", Application.StartupPath);

    Cordialement.

    vendredi 8 juin 2012 08:00
    Auteur de réponse
  • Bonjour,

    On peut aussi utiliser le "placeholder" |DataDirectory| (ou sans doute tout autre nom) ce qui permet :

    1) de pouvoir définir dans le fichier de config de l'application ce que l'on veut
    2) on utilisant le (ou donc sans doute les) "placeholders" que l'application aura défini à son lancement


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    vendredi 8 juin 2012 10:54
    Modérateur