Dapatkan string koneksi dari App.config


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

Dan ini adalah App.config saya:

<?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>

Tetapi ketika proyek saya berjalan ini adalah kesalahan saya:

Referensi objek tidak disetel ke instance objek.


5
Di mana Anda meletakkan App.config itu? Proyek aplikasi yang sedang Anda jalankan atau mungkin dll? Anda perlu lebih dulu
abatishchev

3
Tambahkan referensi ke System.Configuration.dll, dan Anda harus dapat menggunakan System.Configuration.ConfigurationManager.
daszarrin

String koneksi Anda memiliki salah ketik. Anda memerlukan ruang antara "Terintegrasi" dan "Keamanan"
Onur Omer

@OnurOmer - pertanyaan telah diperbarui untuk menyertakan ruang ("Keamanan Terpadu" dan bukan "IntegratedSecurity")
SlimsGhost

Jawaban:


484

Tidak bisakah kamu melakukan yang berikut ini:

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

Majelis Anda juga perlu referensi System.Configuration.dll


14
Saya tahu ini adalah pertanyaan C #, tetapi karena ini adalah bagian atas hasil pencarian google, untuk melakukan ini di VB, itu System.Configuration.ConfigurationManager.ConnectionStrings("Test").ConnectionStringuntuk kita yang harus menjaga kode VB
JFA

296

Karena ini adalah pertanyaan yang sangat umum, saya telah menyiapkan beberapa tangkapan layar dari Visual Studio untuk membuatnya mudah diikuti dalam 4 langkah sederhana.

dapatkan string koneksi dari app.config


22
Sukai jawaban ini. Secara default di versi VS (VS2012 Ultimate) saya, perpustakaan ini tidak termasuk, tetapi using System.Configurationmasih berfungsi
David Colwell

3
Saya benar-benar HARUS menambahkan referensi atau penggunaannya tidak digarisbawahi tetapi masih ConfigurationManager tidak diketahui. Terima kasih!
CodingYourLife

33
string str = Properties.Settings.Default.myConnectionString; 

1
Bagaimana jika app.config ditambahkan sebagai tautan ke proyek?
FrenkyB

2
Ini hanya akan berfungsi jika string koneksi Anda adalah pengaturan aplikasi, itu tidak akan berfungsi jika untuk mengambil <connectionStrings>elemen dari app.config (yang diminta OP!).
BrainSlugs83

31

Juga periksa apakah Anda sudah menyertakan System.Configurationdll di bawah referensi Anda. Tanpa itu, Anda tidak akan memiliki akses ke ConfigurationManagerkelas di System.Configuration namespace.


22

Pertama Tambahkan referensi System.Configurationke halaman Anda.

using System.Configuration;

Kemudian Menurut app.config Anda dapatkan string koneksi sebagai berikut.

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

Itu saja sekarang Anda memiliki string koneksi di tangan Anda dan Anda dapat menggunakannya.


16
//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

Coba ini

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

3

1) Buat formulir baru dan tambahkan ini:

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

lalu ketika Anda ingin menggunakan koneksi lakukan ini dalam bentuk 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()

dan itu saja. Anda akan terhubung ke DB dan dapat melakukan banyak hal.

Ini untuk vb.net tetapi logikanya sama.


3

Sudahkah Anda mencoba:

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

3

Saya memiliki masalah yang sama. solusi saya dibangun dari dua proyek. A Class librarydan situs web yang merujuk pada proyek perpustakaan kelas. masalahnya adalah saya mencoba mengakses App.configdi Class libraryproyek saya tetapi sistem mencari di Web.configsitus web. Saya memasukkan string koneksi ke dalam Web.configdan ... masalah terpecahkan!

Alasan utama adalah bahwa meskipun ConfigurationManagerdigunakan dalam majelis lain itu sedang mencari di dalam proyek runnig.


3

Anda dapat menggunakan metode ini untuk mendapatkan string koneksi

using System; 
using System.Configuration;

private string GetConnectionString()
{
    return ConfigurationManager.ConnectionStrings["MyContext"].ConnectionString;
}

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

2

Pertama, Anda harus menambahkan System.Configurationreferensi ke proyek Anda dan kemudian menggunakan kode di bawah ini untuk mendapatkan string koneksi.

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

2

Ini bekerja untuk saya:

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

Output:

Sumber Data =.; Katalog Awal = OmidPayamak; IntegratedSecurity = True "


1

Anda dapat mengambil string koneksi dengan menggunakan baris kode di bawah ini -

using System; using System.Configuration;

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

Berikut ini adalah referensi: Koneksi String dari App.config


2
Saya melakukan hal yang sama seperti yang Anda katakan tetapi kesalahan referensi nol yang sama saya dapatkan.
Enigmatic Mind

1

Sepertinya masalah bukan dengan referensi, Anda mendapatkan connectionstring sebagai nol jadi harap pastikan Anda telah menambahkan nilai ke file konfigurasi proyek yang sedang berjalan berarti program / pustaka utama yang memulai / dijalankan terlebih dahulu.


1

Ada kemungkinan bahwa OP dalam pertanyaan ini mencoba menggunakan App.Config di dalam dll.

Dalam hal ini, kode sebenarnya mencoba untuk mengakses App.Config dari executable dan bukan dll. Karena nama itu tidak ditemukan, Anda mendapatkan Null kembali, maka pengecualian ditampilkan.

Posting berikut mungkin bermanfaat: ConnectionString dari app.config dari DLL adalah nol


0

Saya mereferensikan System.Configurationperpustakaan dan saya memiliki kesalahan yang sama. File debug tidak memiliki app.config mereka, buat file ini secara manual. Kesalahannya adalah, saya memecahkan masalah ini dengan menyalin file "appname.exe.config" di folder debug. IDE tidak membuat file.


0

Saya memecahkan masalah dengan menggunakan indeks untuk membaca string dan memeriksa satu per satu. Membaca menggunakan nama masih memberikan kesalahan yang sama.
Saya memiliki masalah ketika saya mengembangkan aplikasi C # window, saya tidak memiliki masalah dalam aplikasi asp.net saya. Pasti ada sesuatu dalam pengaturan yang tidak benar.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.