从web.config读取连接字符串


253

如何从web.config文件读取连接字符串到类库中包含的公共类中?

我试过了:

WebConfigurationManager

ConfigurationManager

但是这些类在我的类库中无法识别。

Answers:


177

添加System.Configuration作为参考。

出于某些奇怪的原因,默认情况下不包含该代码。



66

C#

// Add a using directive at the top of your code file    
using System.Configuration;

// Within the code body set your variable    
string cs = ConfigurationManager.ConnectionStrings["connectionStringName"].ConnectionString;

VB

' Add an Imports statement at the top of your code file    
Imports System.Configuration

' Within the code body set your variable    
Dim cs as String = ConfigurationManager.ConnectionStrings("connectionStringName").ConnectionString

3
“在代码文件的顶部添加引用” =>这是using指令,而不是引用!
Mishax 2014年

25

System.Configuration然后添加作为参考:

 using System.Configuration;

 ...

 string conn = 
    ConfigurationManager.ConnectionStrings["ConnectionName"].ConnectionString;


14

VB:这应该工作

ConfigurationManager.ConnectionStrings("SQLServer").ConnectionString

C#其中(根据Ala的评论)

ConfigurationManager.ConnectionStrings["SQLServer"].ConnectionString

这些括号必须放在方括号中。
查尔斯·伯恩斯

1
@CharlesBurns,谢谢,我是用V#错误地在VB中编写的,肯定是 ConfigurationManager.ConnectionStrings["SQLServer"].ConnectionString
Alaa 2012年

啊,我什至没有意识到这是VB。我以为是错字。在某种程度上,我的错误也是。
查尔斯·伯恩斯

13
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.DataVisualization.Charting;
using System.Web.UI.WebControls;  

C#

string constring = ConfigurationManager.ConnectionStrings["ABCD"].ConnectionString;
                using (SqlConnection con = new SqlConnection(constring))

在WEB.CONFIG下面的文件代码

<connectionStrings>
    <add name="ABCD" connectionString="Data Source=DESKTOP-SU3NKUU\MSSQLSERVER2016;Initial Catalog=TESTKISWRMIP;Integrated Security=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>

在上面的代码ABCD中是连接名称


补充:除了可以接受连接字符串名称的索引器之外,还可以使用整数索引-如果要在for循环(for (int i = 0; i < numOfConnections; i++) { var conn = ConfigurationManager.ConnectionStrings[i]; ... })中读取所有连接字符串并使它们在组合框中可供选择,则这很有用。使用var numOfConnections = ConfigurationManager.ConnectionStrings.Count;可以确定存在多少个连接字符串。在此示例中conn.Name包含连接的名称。
马特

11

您必须在页面或类的顶部调用该类:

using System.Configuration;

然后,您可以使用此方法返回准备好传递给sqlconnection对象的连接字符串,以继续进行工作,如下所示:

    private string ReturnConnectionString()
    {
       // Put the name the Sqlconnection from WebConfig..
        return ConfigurationManager.ConnectionStrings["DBWebConfigString"].ConnectionString;
    }

为了清楚起见,这是Web Config中的值:

  <add name="DBWebConfigString" connectionString="....." />   </connectionStrings>

在Web项目中最好在System.Web.Configuration中使用WebConfigurationManager。
BJladu4 2015年

9
using System.Configuration;


string conn = ConfigurationManager.ConnectionStrings["ConStringName"].ToString();

4
using System.Configuration;


string connString = ConfigurationManager.ConnectionStrings["ConStringName"].ToString();

切记不要使用ConnectionStrings [index],因为您可能具有全局计算机配置和可移植性



1

每个人似乎都建议添加

using System.Configuration;

没错

但是我是否建议您考虑安装ReSharper的Visual Studio扩展?

安装后,您不会看到未定义类的错误,而是会看到一个提示,告诉您它在哪个程序集中,询问您是否要添加所需的using语句。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.