Baca string koneksi dari web.config

253

Bagaimana saya bisa membaca string koneksi dari web.configfile ke kelas publik yang terkandung dalam perpustakaan kelas?

Saya sudah mencoba:

WebConfigurationManager

ConfigurationManager

Tetapi kelas-kelas ini tidak dikenali dalam perpustakaan kelas saya.

chamara
sumber

Jawaban:

177

Tambahkan System.Configurationsebagai referensi.

Untuk beberapa alasan aneh itu tidak termasuk secara default.

peteisace
sumber
510

Anda perlu menambahkan referensi System.Configurationdan kemudian menggunakan:

System.Configuration.ConfigurationManager.
    ConnectionStrings["connectionStringName"].ConnectionString;
Muhammad Akhtar
sumber
19
Konfigurasi MSDN, System.conf . Itu perlu System.Configuration.dll.
AechoLiu
66

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
MDM
sumber
3
"Tambahkan referensi di bagian atas file kode Anda" => itu adalah arahan menggunakan, bukan referensi!
Mishax
25

Tambahkan System.Configurationsebagai referensi, lalu:

 using System.Configuration;

 ...

 string conn = 
    ConfigurationManager.ConnectionStrings["ConnectionName"].ConnectionString;
nirmus
sumber
19

Saya kira Anda perlu menambahkan referensi ke perakitan System.Configuration jika itu belum ditambahkan.

Selain itu, Anda mungkin perlu memasukkan baris berikut di bagian atas file kode Anda:

using System.Configuration;
Akram Shahda
sumber
Typo, seharusnya menggunakan System.Configuration;
Nick Binnet
14

Dalam VB: Ini seharusnya berhasil

ConfigurationManager.ConnectionStrings("SQLServer").ConnectionString

Di C#dalamnya akan (sesuai komentar Ala)

ConfigurationManager.ConnectionStrings["SQLServer"].ConnectionString
Alaa
sumber
Tanda kurung itu harus berupa tanda kurung.
Charles Burns
1
@ CharlesBurns, Terima kasih, saya menulis di VB secara tidak sengaja, di C # yakin itu seharusnya ConfigurationManager.ConnectionStrings["SQLServer"].ConnectionString
Alaa
Ahh, aku bahkan tidak menyadari kalau itu adalah VB. Saya pikir itu salah ketik. Di satu sisi, kesalahan saya juga.
Charles Burns
13
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))

DI BAWAH WEB.CONFIG KODE FILE

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

Dalam Kode di atas, ABCD adalah Nama Koneksi

subramanya46
sumber
Tambahan: Selain pengindeks yang menerima nama string koneksi, juga diizinkan untuk menggunakan indeks integer - yang berguna jika Anda ingin membaca semua string koneksi dalam satu forlingkaran ( for (int i = 0; i < numOfConnections; i++) { var conn = ConfigurationManager.ConnectionStrings[i]; ... }) dan membuatnya dapat dipilih dalam kotak kombo. Dengan var numOfConnections = ConfigurationManager.ConnectionStrings.Count;Anda dapat menentukan berapa banyak string koneksi yang ada. Dalam contoh ini conn.Nameberisi nama koneksi.
Matt
11

Anda harus mengaktifkan kelas ini di bagian atas halaman atau kelas Anda:

using System.Configuration;

Kemudian Anda dapat menggunakan Metode ini yang mengembalikan string koneksi agar siap diteruskan ke objek sqlconnection untuk melanjutkan pekerjaan Anda sebagai berikut:

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

Hanya untuk membuat klarifikasi yang jelas ini adalah nilai di web Config:

  <add name="DBWebConfigString" connectionString="....." />   </connectionStrings>
Ahmed Elbatt
sumber
Dalam proyek Web lebih baik menggunakan WebConfigurationManager di System.Web.Configuration.
BJladu4
9
using System.Configuration;


string conn = ConfigurationManager.ConnectionStrings["ConStringName"].ToString();
Saravanan G
sumber
4
using System.Configuration;


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

Ingat, jangan gunakan ConnectionStrings [index] karena Anda mungkin menggunakan Global Config and Portability

cyberspiritwebsolutions ugo
sumber
2

Pertama tambahkan ini:

using System.Configuration;
Ali
sumber
1

Semua orang tampaknya menyarankan penambahan itu

using System.Configuration;

yang mana yang benar.

Tapi bolehkah saya menyarankan Anda berpikir tentang menginstal ekstensi Visual Studio ReSharper?

Dengan diinstal, alih-alih melihat kesalahan yang tidak didefinisikan oleh kelas, Anda akan melihat prompt yang memberi tahu Anda di mana perakitan itu berada, menanyakan apakah Anda ingin menambahkan pernyataan menggunakan yang diperlukan.

Jeff Dege
sumber