Получить строку подключения из App.config - PullRequest
354 голосов
/ 30 июня 2011
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>

Но когда мой проект запускается, это моя ошибка:

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

Ответы [ 18 ]

454 голосов
/ 01 июля 2011

Не могли бы вы просто сделать следующее:

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

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

278 голосов
/ 20 марта 2013

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

get connection string from app.config

32 голосов
/ 03 октября 2013
string str = Properties.Settings.Default.myConnectionString; 
28 голосов
/ 19 июля 2012

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

20 голосов
/ 16 января 2014

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

using System.Configuration;

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

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

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

14 голосов
/ 02 апреля 2015
//Get Connection from web.config file
public static OdbcConnection getConnection()
{
    OdbcConnection con = new OdbcConnection();
    con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["con"].ConnectionString;
    return con;     
}
6 голосов
/ 29 апреля 2014

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

string abc = ConfigurationManager.ConnectionStrings["CharityManagement"].ConnectionString;
3 голосов
/ 28 ноября 2012

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

3 голосов
/ 30 июня 2011

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

var connection = new ConnectionFactory().GetConnection(
    ConfigurationManager.ConnectionStrings["Test"]
    .ConnectionString, DataBaseProvider);
3 голосов
/ 29 марта 2017

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

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

...