Obtenez la chaîne de connexion de L'application.config
var connection = ConnectionFactory.GetConnection(
ConfigurationManager.ConnectionStrings["Test"]
.ConnectionString, DataBaseProvider);
et voici mon application.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="Test" connectionString="Data Source=.;Initial Catalog=OmidPayamak;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
Mais quand mon projet fonctionne c'est mon erreur:
référence D'objet non définie à une instance d'un objet.
18 réponses
ne Pouvez-vous pas juste faire ce qui suit:
var connection =
System.Configuration.ConfigurationManager.
ConnectionStrings["Test"].ConnectionString;
votre assemblage a également besoin d'une référence à System.Configuration.dll
puisque c'est une question très courante, j'ai préparé quelques captures d'écran de Visual Studio pour la rendre facile à suivre en 4 étapes simples.
vérifiez également que vous avez inclus la dll System.Configuration
sous vos références. Sans lui, vous n'aurez pas accès à la classe ConfigurationManager
dans le système.Espace de noms de Configuration.
ajoutez D'abord une référence de System.Configuration
à votre page.
using System.Configuration;
puis selon votre app.config obtenez la chaîne de connexion comme suit.
string conStr = ConfigurationManager.ConnectionStrings["Test"].ToString();
c'est maintenant que vous avez votre chaîne de connexion dans votre main et vous pouvez l'utiliser.
//Get Connection from web.config file
public static OdbcConnection getConnection()
{
OdbcConnection con = new OdbcConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["con"].ConnectionString;
return con;
}
Essayer
string abc = ConfigurationManager.ConnectionStrings["CharityManagement"].ConnectionString;
1) Créer un nouveau formulaire et ajouter ceci:
Imports System.Configuration
Imports Operaciones.My.MySettings
Public NotInheritable Class frmconexion
Private Shared _cnx As String
Public Shared Property ConexionMySQL() As String
Get
Return My.MySettings.Default.conexionbd
End Get
Private Set(ByVal value As String)
_cnx = value
End Set
End Property
End Class
ensuite, lorsque vous voulez utiliser la connexion, faites ceci sous la forme ur:
Private Sub frmInsert_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim cn As New MySqlConnection(frmconexion.ConexionMySQL)
cn.open()
et c'est tout. Vous serez connecté à la base de données et pouvez faire des choses.
C'est pour vb.net mais la logique est la même.
avez-vous essayé:
var connection = new ConnectionFactory().GetConnection(
ConfigurationManager.ConnectionStrings["Test"]
.ConnectionString, DataBaseProvider);
j'ai eu le même Problème. ma solution a été construite à partir de deux projets. Un Class library
et un site Web faisant référence au projet de bibliothèque de classe. le problème était que j'essayais d'accéder au App.config
dans mon projet Class library
mais le système cherchait dans Web.config
du site web. J'ai mis la chaîne de connexion dans Web.config
et ... problème résolu!
la raison principale était que malgré ConfigurationManager
a été utilisé dans un autre ensemble, il a été à la recherche à l'intérieur de la running du projet .
string sTemp = System.Configuration.ConfigurationManager.ConnectionStrings["myDB In app.config"].ConnectionString;
vous pouvez récupérer la chaîne de connexion en utilisant la ligne de code ci-dessous -
using System; using System.Configuration;
var connectionString=ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
Voici une référence : chaîne de connexion de L'application.config
il semble que le problème ne soit pas avec référence, vous obtenez connexion comme null alors s'il vous plaît assurez-vous que vous avez ajouté la valeur au fichier de configuration de votre projet en cours d'exécution, c'est-à-dire le programme principal/bibliothèque qui est lancé/exécuté en premier.
Il est possible que les OP dans cette question est d'essayer d'utiliser une Application.Config dans une dll.
dans ce cas, le code essaie d'accéder à l'application.Config de l'exécutable et non de la dll. Puisque le nom n'est pas trouvé, vous obtenez un retour Null, d'où l'exception montrée.
Le post suivant peut être utile: ConnectionString à partir de l'app.la configuration D'une DLL est nulle
vous devez d'abord ajouter System.Configuration
référence à votre projet et ensuite utiliser le code ci-dessous pour obtenir chaîne de connexion.
_connectionString = ConfigurationManager.ConnectionStrings["MYSQLConnection"].ConnectionString.ToString();
cela a fonctionné pour moi:
string connection = System.Configuration.ConfigurationManager.ConnectionStrings["Test"].ConnectionString;
sorties:
Source De Données=.; Catalogue Initial = OmidPayamak;Sécurité Intégrée= True "
que j'ai référencé System.Configuration
bibliothèque et j'ai la même erreur.
Les fichiers de débogage n'avaient pas leur application.config, créer manuellement ce fichier.
L'erreur est, j'ai résolu cette copie du fichier " appname.EXE.config" dans le dossier de débogage. L'IDE n'était pas de créer le fichier.
j'ai résolu le problème en utilisant l'index pour lire la chaîne et vérifier un par un. Lire en utilisant le nom donne toujours la même erreur.
J'ai le problème quand je développe une application c # window, Je n'avais pas le problème dans mon asp.net application. Il doit y avoir quelque chose dans le décor qui ne va pas.