从App.config获取连接string

var connection = ConnectionFactory.GetConnection( ConfigurationManager.ConnectionStrings["Test"] .ConnectionString, DataBaseProvider); 

这是我的App.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> 

但是当我的项目运行这是我的错误:

你调用的对象是空的。

你不能只是做以下几点:

 var connection = System.Configuration.ConfigurationManager. ConnectionStrings["Test"].ConnectionString; 

您的程序集还需要对System.Configuration.dll的引用

由于这是非常常见的问题,我从Visual Studio准备了一些屏幕截图,以便通过4个简单步骤轻松完成。

从app.config获取连接字符串

 string str = Properties.Settings.Default.myConnectionString; 

另外检查你是否在你的引用下包含了System.Configuration DLL。 没有它,你将无法访问System.Configuration命名空间中的ConfigurationManager类。

首先将System.Configuration的引用添加到您的页面。

 using System.Configuration; 

然后根据你的app.config获取连接string如下。

 string conStr = ConfigurationManager.ConnectionStrings["Test"].ToString(); 

这就是现在你有你的连接string,你可以使用它。

试试这个

 string abc = ConfigurationManager.ConnectionStrings["CharityManagement"].ConnectionString; 
 //Get Connection from web.config file public static OdbcConnection getConnection() { OdbcConnection con = new OdbcConnection(); con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["con"].ConnectionString; return con; } 

1)创build一个新的表单并添加:

 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 

那么当你想使用连接做到这一点在你的forms:

  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() 

这就是它。 你将被连接到数据库,可以做的东西。

这是为vb.net,但逻辑是一样的。

你有没有尝试过:

 var connection = new ConnectionFactory().GetConnection( ConfigurationManager.ConnectionStrings["Test"] .ConnectionString, DataBaseProvider); 
 string sTemp = System.Configuration.ConfigurationManager.ConnectionStrings["myDB In app.config"].ConnectionString; 

您可以通过使用下面的代码行来获取连接string –

 using System; using System.Configuration; var connectionString=ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString; 

这里是一个引用: 来自App.config的连接string

这个问题中的OP可能试图在一个dll中使用一个App.Config。

在这种情况下,代码实际上是试图访问可执行文件的App.Config,而不是DLL。 由于没有find该名称,因此会返回Null,因此会显示exception。

以下文章可能会有所帮助: 来自DLL的app.config的ConnectionString为空

首先,您必须将System.Configuration引用添加到您的项目,然后使用下面的代码来获取连接string。

 _connectionString = ConfigurationManager.ConnectionStrings["MYSQLConnection"].ConnectionString.ToString(); 

我遇到过同样的问题。 我的解决scheme是从两个项目build立起来的。 Class library和引用类库项目的网站。 问题是我试图访问我的Class library项目中的App.config ,但系统在Web.config中search网站。 我把连接string里面的Web.config和…问题解决了!

主要原因是尽pipeConfigurationManager在另一个程序集中使用,它正在runnig项目中search。

看起来问题不在于引用,你将connectionstring设置为null,所以请确保你已经将值添加到了configuration文件中,正在运行的项目意味着首先启动/执行的主程序/库。

我引用System.Configuration库,我有同样的错误。 debugging文件没有他们的app.config,手动创build这个文件。 错误是,我解决了这个复制debugging文件夹中的文件“appname.exe.config”。 IDE不是创build文件。

这对我工作:

 string connection = System.Configuration.ConfigurationManager.ConnectionStrings["Test"].ConnectionString; 

输出:

数据源=;初始目录= OmidPayamak; IntegratedSecurity = True“

我通过使用索引来读取string并逐个检查来解决问题。 使用名称阅读仍给出了相同的错误。
当我开发一个C#窗口应用程序时,我遇到了问题,在我的asp.net应用程序中没有问题。 一定有一些事情是不对的。