2017-01-13 2 views
0

J'ai enregistré uniquement l'emplacement de la base de données et le nom de la base de données dans le fichier settings.settings.Je suis en mesure d'accéder à la chaîne de connexion du fichier Settings.Settings lors du débogage. Mais quand je lance l'exécutable, il ne charge pas la base de données que j'ai utilisée dans la chaîne de connexion dans le fichier setting.settings.L'utilisateur peut modifier dynamiquement le fichier de paramètres Selon les besoins de l'utilisateur. Ma chaîne de connexion est comme -Impossible d'accéder au fichier setting.setting lors de l'exécution du fichier .exe

public static string sd =System.AppDomain.CurrentDomain.BaseDirectory.ToString(); 

public static string co = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sd +"\\Data\\"+ Properties.Settings.Default.db+".accdb"; 
+0

Alors, que retourne BaseDirectory.ToString() 'et' Properties.Settings.Default.db'? Pouvez-vous vous connecter la valeur retournée et le voir. – CodingYoshi

+0

Oui ... à des fins de test j'ai utilisé MessageBox.Show(), qui renvoie le résultat souhaité lors du débogage. Mais quand je cours le .exe il montre une base de données différente qui n'est pas enregistrée dans Properties.Settings.Default.db ..... BaseDirectory.ToString(), montre également le résultat désiré. – mofidul

+0

Le fichier de paramètres le modifie afin qu'il soit par application et non par utilisateur à moins que vous ne le vouliez basé sur l'utilisateur. Vous pouvez le faire en utilisant les propriétés du projet et en allant dans les paramètres. Aussi, vous pouvez simplement sauvegarder la chaîne de connexion dans 'AppSettings' à la place. Désolé je écrirais la réponse mais je suis dehors sur mon téléphone portable. – CodingYoshi

Répondre

1

Accédez aux propriétés du projet et faites-le basé sur les applications plutôt que sur les utilisateurs.

problème .Le Je suis face est maintenant si l'utilisateur doit changer dynamiquement le fichier settings.setting

Pas de l'utilisateur ne peut pas le faire de façon dynamique que le fichier est verrouillé par l'application. Si l'utilisateur effectue une modification, un redémarrage de l'application est requis, mais la modification ne peut avoir lieu que lorsque le fichier n'est pas verrouillé par l'application.

Il est inutile de créer une chaîne de connexion basée sur un utilisateur à moins que chaque utilisateur n'ait une chaîne de connexion différente.

EDIT

Si vous souhaitez modifier la connexion dynamique alors soit traiter le fichier de paramètres comme un fichier XML et de le modifier ou stocker la chaîne de connexion dans une autre source comme un fichier ou base de données.

+0

J'ai besoin de changer la chaîne de connexion dynamiquement .... et je redémarre l'application chaque fois que le réglage change. – mofidul