从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个简单步骤轻松完成。
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应用程序中没有问题。 一定有一些事情是不对的。