NullReferenceException essayant de lire une chaîne de connexion
J'ai deux projets. L'un est web & l'autre est windows forms. Projet Web se connecte à la base de données mais le projet windows déclenche une exception NullReferenceException la lecture de la chaîne de connexion.
Je suis en utilisant les mêmes classes pour connecter les deux projets. La connexion est établie à l'aide de LINQTOSQL.
Voici ma chaîne de Connexion:
<connectionStrings>
<add name="GPSystemConnectionString"
connectionString="Data Source=.;Initial Catalog=GPSystem;User ID=***;Password=***"
providerName="System.Data.SqlClient" />
</connectionStrings>
C'est la façon dont je suis le lire.
string CS = ConfigurationManager.ConnectionStrings["GPSystemConnectionString"].ConnectionString;
(Exception se produit sur cette ligne)..... (La référence d'objet n'est pas définie à une instance d'un objet.)
Note: je suis en utilisant la même classe afin de connecter les deux projets.... on se connecte, mais de l'autre échoue.
S'il vous plaît tout on m'aider avec ce!
Vous en remercie d'avance.
- Vous avez besoin d'avoir de l'entrée appropriée dans l'application.config (pour WinForms) et le web.config (pour le projet Web) - ces configurations sont en lecture pour l'exécution de l'assemblée et ne sont pas partagées.
- Il est possible de les partager. Voir ma réponse.
- Votre réponse vraiment juste vole la configuration 😉
- N'est-il pas merveilleux? 😉 J'utilise beaucoup. J'ai un ORM cartographie qui lit le fichier de configuration de la
ExecutingAssembly
. Cette méthode est très utile.
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'avoir de l'entrée en application.config pour la chaîne de connexion dans la fenêtre de votre application.
Si vous n'avez pas
App.Config
fichier puis de l'ajouter.et de mettre l'entrée comme ci-dessous
En vous .cs fichier
Si vous voulez obtenir la section de configuration à partir d'un autre assemblée utiliser ceci:
web.config
de l'application WinForms (par opposition à laapp.config
d'une autre application)? Je n'ai jamais utilisé avant.WebConfigurationManager
.J'ai toujours du mal avec cette question de la référence null avec la
ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString
quand j'ai la couche d'accès aux données dans un autre projet/bibliothèque de l'exécutable. J'ai souvent utiliser les éléments suivants pour vous aider à déboguer l'emplacement du fichier de configuration à l'exécution:Dans mon cas, ce problème était dû à ConnectionString dans ma Machine 64 bits.Config
C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\Config
Plutôt que le standard de 32 bits
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config
Pour corriger supprimer le Préfèrent 32 bits paramètre dans l'onglet Build de Propriétés du Projet