从App.config获取连接字符串

Moh*_*ari 368 c# ado.net connection-string app-config exception-handling

var connection = ConnectionFactory.GetConnection(
    ConfigurationManager.ConnectionStrings["Test"]
    .ConnectionString, DataBaseProvider);
Run Code Online (Sandbox Code Playgroud)

这是我的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>
Run Code Online (Sandbox Code Playgroud)

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

你调用的对象是空的.

Duf*_*ffp 467

你不能只做以下事情:

var connection = 
    System.Configuration.ConfigurationManager.
    ConnectionStrings["Test"].ConnectionString;
Run Code Online (Sandbox Code Playgroud)

你的程序集也需要引用 System.Configuration.dll

  • 我知道这是一个C#问题,但由于这是谷歌搜索结果的顶部,要在VB中执行此操作,它是`System.Configuration.ConfigurationManager.ConnectionStrings("Test").ConnectionString`对于我们这些人来说维护VB代码 (10认同)

Fre*_*uss 288

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

从app.config获取连接字符串

  • 喜欢这个答案.默认情况下,我的VS(VS2012 Ultimate)版本中不包含此库,但使用System.Configuration仍然有效 (21认同)
  • 我真的想添加引用或者使用没有下划线但仍然是ConfigurationManager未知.谢谢! (2认同)

gji*_*ijo 32

string str = Properties.Settings.Default.myConnectionString; 
Run Code Online (Sandbox Code Playgroud)

  • 这仅在您的连接字符串是应用程序设置时才有效,如果从 app.config 中检索 `&lt;connectionStrings&gt;` 元素(这就是 OP 要求的内容!),它将不起作用。 (3认同)
  • 如果将 app.config 添加为项目的链接会怎样? (2认同)

Car*_*cke 31

另外,请检查您是否System.Configuration在参考文献中包含了dll.没有它,您将无法访问ConfigurationManagerSystem.Configuration命名空间中的类.


小智 21

首先添加System.Configuration对您页面的引用.

using System.Configuration;
Run Code Online (Sandbox Code Playgroud)

然后根据你的app.config获取连接字符串如下.

string conStr = ConfigurationManager.ConnectionStrings["Test"].ToString();
Run Code Online (Sandbox Code Playgroud)

就是现在你手里拿着你的连接字符串就可以使用了.


小智 15

//Get Connection from web.config file
public static OdbcConnection getConnection()
{
    OdbcConnection con = new OdbcConnection();
    con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["con"].ConnectionString;
    return con;     
}
Run Code Online (Sandbox Code Playgroud)


vis*_*219 6

试试吧

string abc = ConfigurationManager.ConnectionStrings["CharityManagement"].ConnectionString;
Run Code Online (Sandbox Code Playgroud)


Vla*_*den 3

你有没有尝试过:

var connection = new ConnectionFactory().GetConnection(
    ConfigurationManager.ConnectionStrings["Test"]
    .ConnectionString, DataBaseProvider);
Run Code Online (Sandbox Code Playgroud)