Web.config sitesinden bağlantı dizesini okuyun


253

Bir bağlantı dizesini web.configdosyadan sınıf kitaplığında bulunan ortak sınıfa nasıl okuyabilirim ?

Denedim:

WebConfigurationManager

ConfigurationManager

Ancak bu sınıflar sınıf kütüphanemde tanınmıyor.

Yanıtlar:


177

System.ConfigurationReferans olarak ekleyin .

Bazı tuhaf nedenlerden dolayı varsayılan olarak dahil edilmez.


510

Bir başvuru eklemeniz System.Configurationve ardından şunu kullanmanız gerekir:

System.Configuration.ConfigurationManager.
    ConnectionStrings["connectionStringName"].ConnectionString;

19
MSDN, System.configuration . İhtiyacı var 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

3
"Kod dosyanızın üstüne bir referans ekleyin" => bu bir referans değil, bir kullanım direktifi!
Mishax

25

System.ConfigurationReferans olarak ekleyin ve ardından:

 using System.Configuration;

 ...

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

19

Sanırım henüz eklenmemişse , System.Configuration derlemesine bir başvuru eklemeniz gerekir .

Ayrıca, kod dosyanızın üstüne aşağıdaki satırı eklemeniz gerekebilir:

using System.Configuration;

Yazım hatası, System.Configuration kullanıyor olmalıdır;
Nick Binnet

14

In VB: Bu işe yaramalı

ConfigurationManager.ConnectionStrings("SQLServer").ConnectionString

İçinde C#olurdu (Ala yorumuna göre)

ConfigurationManager.ConnectionStrings["SQLServer"].ConnectionString

Bu parantezlerin parantez olması gerekir.
Charles Burns

1
@ CharlesBurns, Teşekkürler, yanlışlıkla VB yazdım, C # olması gerektiği ConfigurationManager.ConnectionStrings["SQLServer"].ConnectionString
Alaa

Ahh, bunun VB olduğunu bile bilmiyordum. Bunun bir yazım hatası olduğunu düşündüm. Bir bakıma benim hatam da.
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))

WEB.COWFIG DOSYA KODUNUN ALTINDA

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

Yukarıdaki Kodda ABCD Bağlantı Adıdır


Ek: Bağlantı dizesinin adını kabul eden dizinleyicinin yanı sıra, tamsayı indekslerinin kullanılmasına da izin verilir - bu, bir forloop ( for (int i = 0; i < numOfConnections; i++) { var conn = ConfigurationManager.ConnectionStrings[i]; ... }) içindeki tüm bağlantı dizelerini okumak ve bunları bir açılan kutuda seçilebilir yapmak istiyorsanız kullanışlıdır . İle var numOfConnections = ConfigurationManager.ConnectionStrings.Count;kaç bağlantı dizesinin var olduğunu belirleyebilirsiniz. Bu örnekte conn.Namebağlantının adı yer almaktadır.
Matt

11

Bu sınıfı sayfanızın veya sınıfınızın üstünde çağırmanız gerekir:

using System.Configuration;

Ardından, aşağıdaki gibi çalışmaya devam etmek için bağlantı dizesini sqlconnection nesnesine iletilmeye hazır olacak şekilde döndüren bu Yöntemi kullanabilirsiniz:

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

Sadece net bir açıklama yapmak için bu web Config değerdir:

  <add name="DBWebConfigString" connectionString="....." />   </connectionStrings>

Web projesinde System.Web.Configuration içinde WebConfigurationManager kullanmak daha iyidir.
BJladu4

9
using System.Configuration;


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

4
using System.Configuration;


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

Unutmayın ConnectionStrings [index] kullanmayın çünkü Global makine Yapılandırma ve Taşınabilirlik olabilir


2

Önce şunu ekleyin:

using System.Configuration;

1

Herkes eklemeyi öneriyor gibi görünüyor

using System.Configuration;

hangisi doğru.

Ancak ReSharper'in Visual Studio uzantısını yüklemeyi düşünmenizi önerebilir miyim?

Yüklendiğinde, bir sınıfın tanımlanmadığı bir hatayı görmek yerine, hangi derlemede olduğunu bildiren ve gerekli kullanım ifadesini eklemesini isteyip istemediğinizi soran bir istem görürsünüz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.