none
Accès Base de doonées 3 Pc

    Discussion générale

  • Bonjour,
    Je suis entrain de développé une application qui peut tourner sur plusieurs machine. Pour l'instant, j'ai un chemin d'accès mono-poste et je cherche a savoir comment le changer pour qu'il soit un chemin principal pour par exemple 3 PC
     OleDbConnection cnx = new OleDbConnection();
                cnx.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MonRépértoir\bdd.mdb";et là je suis bien sur un seul Poste et la ou je code mon application
    
    si par exemple je voulais que cela tourne sur 3 machine comment changer le chemin? ou sur un client serveur?
    mardi 28 février 2017 10:58

Toutes les réponses

  • Bonjour,

    Lors de l'installation, vous pouvez enregistrer l'emplacement de la base de données dans le registre

    LM/software/<Société>/<Application>/EmlacementDB.

    Registre LM: vous devez avoir le droit d'écrire dans ce registre.
    Vous pouvez prévoir un formulaire pour configurer/modifier cet emplacement.
    Si votre formulaire est dans l'appli, il est préférable d'enregistrer l'emplacement dans le registre CurrentUser.
    Vous lisez l'info dans la base de registre et vous la reporter dans les settings de l'appli...

    Cordialement
    Gérard

    mardi 28 février 2017 11:23
  • un peu flou, car j'ai pas encore Créer une application si tu peut m'éclaircir
    mardi 28 février 2017 11:28
  • Il faut créer un installateur pour votre application.

    Option 1

    Lors de l'installation du programme (setup.exe) vous demander à l'utilisateur ou se trouve la base de données que vous utilisez, vous enregistrez l'emplacement dans le registre (local machine ou Current User).

    Option 2

    A chaque lancement du programme, vous regardez si l'information est présente dans le registre (Current User)

    si oui,
    vous continuer le programme

    si non,
    vous demander l'emplacement de la base de données, vous l'enregistrer dans le registre.

    Voici un petit exemple pour une application basé sur un formulaire

    private void Form1_Load(object sender, EventArgs e)
    {
     try
      {
         chargerPreference();
       }
       catch (Exception ex)
       {
         MessageBox.Show(ex.Message, "ERREUR", MessageBoxButtons.OK, MessageBoxIcon.Error);
       }
    }

    void chargerPreference()
    {
      System.Reflection.AssemblyName l_Ass = System.Reflection.Assembly.GetEntryAssembly().GetName();
      Microsoft.Win32.RegistryKey l_KsoftWare = Microsoft.Win32.Registry.Users.OpenSubKey("SoftWare", true);
      Microsoft.Win32.RegistryKey l_KAppli =  l_KsoftWare.CreateSubKey(l_Ass.Name);

      object l_EmplacementDB = l_KAppli.GetValue("DBEMPLACEMENT");
      if (l_EmplacementDB == null)
        throw (new ApplicationException("Vous devez indiquez l'emplacement de la base de données."));
                
    WindowsFormsApplication5.Properties.Settings.Default["DELfabricationConnectionString"] =
      string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", l_EmplacementDB);

      WindowsFormsApplication5.Properties.Settings.Default.Save();
    }

    Cordialement
    Gérard

    mardi 28 février 2017 13:45
  • Bonjour,

    je ne suis pas bien sûr de comprendre la question.

    Bonjour,
    Je suis entrain de développé une application qui peut tourner sur plusieurs machine. Pour l'instant, j'ai un chemin d'accès mono-poste et je cherche a savoir comment le changer pour qu'il soit un chemin principal pour par exemple 3 PC

    Je suis d'accord sur l'utilité d'utiliser la base de registre mais là, sauf erreur de ma part tu veux pouvoir utiliser la base de données en réseau pour 3 machine. Est-ce bien cela ?

    Merci de répondre

    Cordialement

    Patrick

    jeudi 2 mars 2017 00:15
  • Bonjour,

    Oui, c'est ce que je supposais. La base de données est commune aux 3 postes et est donc installée sur un serveur.

    cordialement

    Gérard

    jeudi 2 mars 2017 09:42
  • j'ai essayé de faire en sqlserveur 2008rd

    SqlConnection cnx = new SqlConnection();
                cnx.ConnectionString = "Data Source=192.168.1.1;Initial Catalog=bdd;Integrated Security=True;Pooling=False";
    mais quand j'essaie d'esxecuté l'application par un autre machine du réseau, il me donnes des erreur.
    ou comment importer lors de setup la bdd
    ************** Débogage JIT **************
    Pour activer le débogage juste-à-temps (JIT), le fichier de configuration pour cette
    application ou cet ordinateur (machine.config) doit avoir la valeur
    jitDebugging définie dans la section system.windows.forms.
    L'application doit également être compilée avec le débogage
    activé.
    
    Par exemple :
    
    <configuration>
        <system.windows.forms jitDebugging="true" />
    </configuration>
    
    Lorsque le débogage juste-à-temps est activé, les exceptions non gérées
    seront envoyées au débogueur JIT inscrit sur l'ordinateur
    plutôt que d'être gérées par cette boîte de dialogue.
    
    
    c'est l'erreur que je recois

    samedi 4 mars 2017 18:14