8
votes

VB.NET Connection String (web.config, app.config)

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. Â

- la classe d'employé dans le projet de la bibliothèque de classe - xxx

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: xxx

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?


2 commentaires

Depuis votre code, on dirait que vous essayez d'utiliser my_connectionstring 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


5 Réponses :


20
votes

non claire où my_connectionstring est originaire de votre exemple, mais essayez ceci

​​

system.configuration.configurationManager.Connections ("my_connectionstring"). Connexionstring

comme ceci xxx


7 commentaires

Vous pouvez également ajouter une référence à system.configuration , importez-le avec importe System.configuration , puis l'accédez à la configuration de la configuration plus courte .


Je suggère également d'utiliser un à l'aide du bloc 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 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.



5
votes

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: xxx

espoir qui aide quelqu'un. < / p>


0 commentaires

0
votes
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

2 commentaires

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



1
votes

connexion dans AppConfig xxx

en classe.cs xxx


0 commentaires

0
votes

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


0 commentaires