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.

Jawaban:


177

Tambahkan System.Configurationsebagai referensi.

Untuk beberapa alasan aneh itu tidak termasuk secara default.



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

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;

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;

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

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


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>

Dalam proyek Web lebih baik menggunakan WebConfigurationManager di System.Web.Configuration.
BJladu4

9
using System.Configuration;


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

4
using System.Configuration;


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

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


2

Pertama tambahkan ini:

using System.Configuration;

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.

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.