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

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>

Но когда мой проект выполняется, это моя ошибка:

Ссылка на объект не установлена ​​в экземпляр объекта.

Ответ 1

Не можете ли вы сделать следующее:

var connection = 
    System.Configuration.ConfigurationManager.
    ConnectionStrings["Test"].ConnectionString;

Ваша сборка также нуждается в ссылке на System.Configuration.dll

Ответ 2

Поскольку это очень распространенный вопрос, я подготовил несколько снимков экрана из Visual Studio, чтобы упростить его выполнение в 4 простых шага.

get connection string from app.config

Ответ 3

string str = Properties.Settings.Default.myConnectionString; 

Ответ 4

Также проверьте, что вы включили dll System.Configuration в свои ссылки. Без этого у вас не будет доступа к классу ConfigurationManager в пространстве имен System.Configuration.

Ответ 5

Сначала добавьте ссылку на System.Configuration на свою страницу.

using System.Configuration;

Затем в соответствии с вашим app.config введите строку подключения следующим образом.

string conStr = ConfigurationManager.ConnectionStrings["Test"].ToString();

Теперь у вас есть строка подключения в вашей руке, и вы можете ее использовать.

Ответ 6

Попробуйте это

string abc = ConfigurationManager.ConnectionStrings["CharityManagement"].ConnectionString;

Ответ 7

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

Ответ 8

Вы пробовали:

var connection = new ConnectionFactory().GetConnection(
    ConfigurationManager.ConnectionStrings["Test"]
    .ConnectionString, DataBaseProvider);

Ответ 9

1) Создайте новую форму и добавьте следующее:

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

тогда, когда вы хотите использовать соединение, сделайте это в форме ur:

 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, но логика такая же.

Ответ 10

string sTemp = System.Configuration.ConfigurationManager.ConnectionStrings["myDB In app.config"].ConnectionString;

Ответ 11

Вы можете получить строку соединения, используя нижнюю строку кода -

using System; using System.Configuration;

var connectionString=ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;

Вот ссылка: Строка подключения из App.config

Ответ 12

Возможно, что OP в этом вопросе пытается использовать App.Config внутри dll.

В этом случае код фактически пытается получить доступ к App.Config исполняемого файла, а не dll. Поскольку имя не найдено, вы получаете возвращаемый Null, поэтому показано исключение.

Следующая публикация может быть полезна: ConnectionString из app.config библиотеки DLL null

Ответ 13

Сначала вам нужно добавить ссылку System.Configuration к вашему проекту, а затем использовать ниже код для получения строки подключения.

_connectionString = ConfigurationManager.ConnectionStrings["MYSQLConnection"].ConnectionString.ToString();

Ответ 14

У меня была такая же проблема. мое решение было создано из двух проектов. A Class library и веб-сайт, ссылающийся на проект библиотеки классов. проблема заключалась в том, что я пытался получить доступ к App.config в моем проекте Class library, но система искала в Web.config веб-сайта. Я поставил строку подключения внутри Web.config и... проблема решена!

Основная причина заключалась в том, что, несмотря на то, что ConfigurationManager использовался в другой сборке, он искал внутри проекта runnig.

Ответ 15

Кажется, что проблема не со ссылкой, вы получаете connectionstring как null, поэтому, пожалуйста, убедитесь, что вы добавили значение в файл конфигурации, в котором запущен проект, что означает основную программу/библиотеку, которая запускается/выполняется в первую очередь.

Ответ 16

Я ссылался на библиотеку System.Configuration, и у меня такая же ошибка. У файлов отладки не был свой app.config, создайте вручную этот файл. Ошибка в том, что я решил это копировать файл "appname.exe.config" в папку отладки. IDE не создавал файл.

Ответ 17

Это сработало для меня:

string connection = System.Configuration.ConfigurationManager.ConnectionStrings["Test"].ConnectionString;

Выходы:

Источник данных =; Начальный каталог = OmidPayamak; IntegratedSecurity = True "

Ответ 18

Я решил проблему, используя индекс для чтения строки и проверки по одному. Чтение с использованием имени по-прежнему дает ту же ошибку.
У меня возникла проблема при разработке окна приложения С#, у меня не было проблемы в моем приложении asp.net. В настройке должно быть что-то неправильное.