Прочитать строку подключения из web.config

188

Как я могу прочитать строку подключения из файла web.config в открытый класс в библиотеке классов. я пробовал

WebConfigurationManager

ConfigurationManager

но они не распознаются в библиотеке классов

Теги:
web-config
connection-string

12 ответов

140
Лучший ответ

Добавьте System.Configuration в качестве ссылки.

По какой-то странной причине он не включается по умолчанию.

396

Вам нужно добавить ссылку на System.Configuration, а затем использовать:

System.Configuration.ConfigurationManager.
    ConnectionStrings["connectionStringName"].ConnectionString;
55

С#

// 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, а не ссылка!
21

Добавьте System.Configuration в качестве ссылки, затем:

 using System.Configuration;

 ...

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

Думаю, вам нужно добавить ссылку на сборку System.Configuration, если она еще не добавлена.

Кроме того, вам может понадобиться вставить следующую строку вверху вашего файла кода:

using System.Configuration;
  • 0
    Опечатка, это должно быть использование System.Configuration;
10

В VB: Это должно работать

ConfigurationManager.ConnectionStrings("SQLServer").ConnectionString

В C# это будет (согласно комментарию Ала)

ConfigurationManager.ConnectionStrings["SQLServer"].ConnectionString
  • 0
    Эти скобки должны быть в скобках.
  • 1
    @ CharlesBurns, спасибо, я написал в VB по ошибке, в C # уверен, что это должен быть ConfigurationManager.ConnectionStrings["SQLServer"].ConnectionString
Показать ещё 1 комментарий
9
using System.Configuration;


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

Вы должны вызвать этот класс в верхней части страницы или класса:

using System.Configuration;

Затем вы можете использовать этот метод, который возвращает строку подключения, которая будет готова передать объект sqlconnection, чтобы продолжить вашу работу следующим образом:

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

Просто, чтобы дать четкое разъяснение, это значение в веб-конфигурации:

  

  <add name="DBWebConfigString" connectionString="....." />   </connectionStrings>
  • 0
    В веб-проекте лучше использовать WebConfigurationManager в System.Web.Configuration.
4
using System.Configuration;


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

Помните, что не используйте ConnectionStrings [index], потому что вы можете использовать глобальную конфигурацию и переносимость машины

2

Сначала добавьте это:

using System.Configuration;
1
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;  

С#

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

НИЖЕ WEB > КОНФИГУРИРОВАТЬ ФАЙЛ-код

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

В коде abcove ABCD указано имя подключения

1

Кажется, что все говорят, что добавление

using System.Configuration;

что верно.

Но могу ли я предположить, что вы думаете об установке расширения ReSharper Visual Studio?

Если он установлен, вместо того, чтобы видеть ошибку, что класс не определен, вы увидите подсказку, в которой указывается, в какой сборке она находится, и спрашиваете, хотите ли вы добавить необходимый оператор using.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню