Прочитать строку подключения из web.config
Как я могу прочитать строку подключения из web.config
файл в открытый класс, содержащийся в библиотеке классов?
Я пробовал:
WebConfigurationManager
ConfigurationManager
Но эти классы не распознаются в моей библиотеке классов.
12 ответов
Добавлять System.Configuration
в качестве ссылки.
По какой-то странной причине он не включен по умолчанию.
Вам нужно добавить ссылку на System.Configuration
а затем используйте:
System.Configuration.ConfigurationManager.
ConnectionStrings["connectionStringName"].ConnectionString;
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
Добавлять System.Configuration
в качестве ссылки, то:
using System.Configuration;
...
string conn =
ConfigurationManager.ConnectionStrings["ConnectionName"].ConnectionString;
Я предполагаю, что вам нужно добавить ссылку на сборку System.Configuration, если она еще не была добавлена.
Кроме того, вам может понадобиться вставить следующую строку вверху вашего файла кода:
using System.Configuration;
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))
НИЖЕ ВЕБ> КОНФИГ. ФАЙЛ КОД
<connectionStrings>
<add name="ABCD" connectionString="Data Source=DESKTOP-SU3NKUU\MSSQLSERVER2016;Initial Catalog=TESTKISWRMIP;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
В коде ablove ABCD - Имя соединения
В VB
: Это должно работать
ConfigurationManager.ConnectionStrings("SQLServer").ConnectionString
В C#
это будет (согласно комментарию Ала)
ConfigurationManager.ConnectionStrings["SQLServer"].ConnectionString
Вы должны вызвать этот класс в верхней части вашей страницы или класса:
using System.Configuration;
Затем вы можете использовать этот метод, который возвращает строку подключения, готовую к передаче в объект sqlconnection, чтобы продолжить вашу работу следующим образом:
private string ReturnConnectionString()
{
// Put the name the Sqlconnection from WebConfig..
return ConfigurationManager.ConnectionStrings["DBWebConfigString"].ConnectionString;
}
Просто чтобы прояснить это значение в веб-конфигурации:
<add name="DBWebConfigString" connectionString="....." /> </connectionStrings>
using System.Configuration;
string conn = ConfigurationManager.ConnectionStrings["ConStringName"].ToString();
using System.Configuration;
string connString = ConfigurationManager.ConnectionStrings["ConStringName"].ToString();
Помните, что не используйте ConnectionStrings[index], потому что вы можете использовать Глобальную конфигурацию машины и Переносимость
Все, кажется, предполагают, что добавление
using System.Configuration;
что является правдой.
Но могу ли я предложить вам подумать об установке расширения ReSharper для Visual Studio?
Когда он установлен, вместо того, чтобы увидеть ошибку, что класс не определен, вы увидите подсказку, которая сообщит вам, в какой сборке он находится, и спросит вас, хотите ли вы добавить необходимый оператор using.