vraiment avoir un temps ennuyeux avec des chaînes de connexion.
J'ai deux projets ensemble dans une seule solution. Une application de formulaires Web agissant en tant que couche de présentation et une bibliothèque de classe qui l'appelle qui enverra et reçoive des données d'une base de données. Â p>
- la classe d'employé dans le projet de la bibliothèque de classe - p> actuellement l'application me dit qu'il ne peut pas accéder à "my_connectionstring" que j'ai Tentative de stocker dans un fichier de configuration pour un accès répété rapide: p> the web.config fait partie du projet de formulaire Web et non à la bibliothèque de la classe, ces projets sont-ils incapables de " Parler l'un à l'autre? Dois-je ajouter un fichier de configuration Web / application à la bibliothèque de classes pour enregistrer une chaîne de connexion dans ce projet? P> P>
5 Réponses :
non claire où comme ceci p> my_connectionstring est originaire de votre exemple, mais essayez ceci
system.configuration.configurationManager.Connections ("my_connectionstring"). Connexionstring CODE> p>
Vous pouvez également ajouter une référence à system.configuration code>, importez-le avec
importe System.configuration CODE>, puis l'accédez à la configuration de la configuration
plus courte
Je suggère également d'utiliser un à l'aide du bloc CODE> pour vous assurer que la connexion est correctement éliminée.
'ConfigurationManager' n'est pas membre de la "configuration" que j'ai l'impression de faire une erreur quelque part ...
@Corgalas - Avez-vous ajouté une référence à System.Configuration dans votre projet (la DLL) et ajoutez un système importateurs.configuration code> instruction?
Oublié l'ajout de la référence au projet. Merci tim!
Cette réponse a résolu mon problème et je pense que c'est la meilleure pratique de déclarer la piqûre de connexion par son nom. Il aide le processus de migration
Je n'ai jamais compris pourquoi System.Configuration n'est pas inclus par défaut.
Si c'est une base de données .MDF et que la chaîne de connexion a été enregistrée lors de sa création, vous devriez pouvoir y accéder via: espoir qui aide quelqu'un. P> < / p>
Public Function connectDB() As OleDbConnection Dim Con As New OleDbConnection 'Con.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=" & DBNAME & ";Data Source=" & DBSERVER & ";Pwd=" & DBPWD & "" Con.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBNAME;Data Source=DBSERVER-TOSH;User ID=Sa;Pwd= & DBPWD" Try Con.Open() Catch ex As Exception showMessage(ex) End Try Return Con End Function
Pouvez-vous ajouter quelques explications à votre code? Merci!
Cette chaîne de connexion a des entrées codées dur, elle ne les obtient pas du .config. Et si vous avez besoin de pointer sur un autre serveur? Avec ce code, l'application aurait besoin de déployer avec les modifications. Avec .config, il peut être changé en arrière-plan
en classe.cs strong> p>
Je ne sais pas si cela est toujours un problème, mais je préfère simplement utiliser mes.Settings dans mon code.
Visual Studio génère une classe simple avec des fonctions pour lire les paramètres de l'app.config. p>
Vous pouvez simplement y accéder à l'aide de My.Settings.Connectionstring. P>
Using Context As New Data.Context.DataClasses() Context.Connection.ConnectionString = My.Settings.ConnectionString End Using
Depuis votre code, on dirait que vous essayez d'utiliser
my_connectionstring code> pour récupérer la valeur de votre fichier de configuration. Si tel est correct, cela ne fonctionnera pas - vous devez le récupérer à partir du fichier de configuration d'une manière similaire à @g. La réponse de Stoynev ci-dessous.
Cela pourrait être utile connexionstrings.com