App.config से कनेक्शन स्ट्रिंग प्राप्त करें


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

लेकिन जब मेरी परियोजना चलती है तो यह मेरी त्रुटि है:

वस्तु का संदर्भ वस्तु की आवृत्ति अनुसार सेट नहीं। है।


5
आपने वह App.config कहां रखा है? आपके द्वारा चलाए जा रहे एप्लिकेशन का प्रोजेक्ट या शायद कुछ dll? आपको पहली जरूरत है
abatishchev

3
System.Configuration.dll का संदर्भ जोड़ें, और आपको System.Configuration.ConfigurationManager का उपयोग करने में सक्षम होना चाहिए।
दासजेरिन

आपके कनेक्शन स्ट्रिंग में एक टाइपो है। आपको "एकीकृत" और "सुरक्षा" के बीच एक स्थान की आवश्यकता है
ओनूर ओमर

@OnurOmer - प्रश्न को "इंटीग्रेटेड सिक्योरिटी" के बजाय स्पेस ("इंटीग्रेटेड सिक्योरिटी") में शामिल करने के लिए अपडेट किया गया है
SlimsGhost

जवाबों:


484

क्या आप निम्नलिखित कार्य नहीं कर सकते:

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

आपकी विधानसभा को भी एक संदर्भ की आवश्यकता है System.Configuration.dll


14
मुझे पता है कि यह एक C # प्रश्न है, लेकिन चूंकि यह Google खोज परिणामों में सबसे ऊपर है, VB में ऐसा करने के System.Configuration.ConfigurationManager.ConnectionStrings("Test").ConnectionStringलिए , यह हममें से उन लोगों के लिए है जिन्हें VB कोड बनाए रखना है
JFA

296

चूंकि यह बहुत ही सामान्य प्रश्न है, मैंने विजुअल स्टूडियो से कुछ स्क्रीन शॉट्स तैयार किए हैं ताकि 4 सरल चरणों का पालन करना आसान हो सके।

app.config से कनेक्शन स्ट्रिंग प्राप्त करें


22
इस उत्तर को प्यार करो। VS (VS2012 अल्टीमेट) के मेरे संस्करण में डिफ़ॉल्ट रूप से यह लाइब्रेरी शामिल नहीं है, लेकिन फिर using System.Configurationभी काम करता है
डेविड कोलवेल

3
मैं वास्तव में संदर्भ जोड़ने का उपयोग कर रहा था या उपयोग को रेखांकित नहीं किया गया था, लेकिन फिर भी कॉन्फ़िगरेशन मैन अज्ञात है। धन्यवाद!
कोडिंगयूरलाइफ

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

1
क्या होगा यदि app.config को किसी प्रोजेक्ट के लिंक के रूप में जोड़ा जाए?
FrenkyB

2
यह केवल तभी काम करेगा जब आपका कनेक्शन स्ट्रिंग एक ऐप सेटिंग है, यह काम नहीं करेगा यदि ऐप <connectionStrings>से तत्वों को पुनः प्राप्त किया जाए (जो ओपी पूछ रहा है!)।
BrainSlugs83

31

यह भी जांचें कि आपने System.Configurationअपने संदर्भों के तहत dll को शामिल किया है । इसके बिना, आपको ConfigurationManagerSystem.Configuration नाम स्थान में कक्षा तक पहुंच नहीं होगी ।


22

सबसे पहले System.Configurationअपने पेज का एक संदर्भ जोड़ें ।

using System.Configuration;

फिर अपने app.config के अनुसार कनेक्शन स्ट्रिंग का पालन करें।

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

यह अब आपके हाथ में आपका कनेक्शन स्ट्रिंग है और आप इसका उपयोग कर सकते हैं।


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

इसे आज़माएं

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

3

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

फिर जब आप कनेक्शन का उपयोग करना चाहते हैं तो इसे उर फॉर्म में करें:

 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

आपने कोशिश की है:

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

3

मेरी भी यही समस्या थी। मेरा समाधान दो परियोजनाओं से बनाया गया था। ए Class libraryऔर क्लास लाइब्रेरी प्रोजेक्ट के संदर्भ में एक वेबसाइट। समस्या यह थी कि मैं App.configअपने Class libraryप्रोजेक्ट को एक्सेस करने की कोशिश कर रहा था, लेकिन सिस्टम Web.configवेबसाइट पर खोज कर रहा था । मैंने कनेक्शन स्ट्रिंग को अंदर डाल दिया Web.configऔर ... समस्या हल हो गई!

मुख्य कारण यह था कि ConfigurationManagerएक और विधानसभा में उपयोग किए जाने के बावजूद यह रननिग परियोजना के अंदर खोज कर रहा था।


3

कनेक्शन स्ट्रिंग प्राप्त करने के लिए आप इस विधि का उपयोग कर सकते हैं

using System; 
using System.Configuration;

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


2

सबसे पहले आपको System.Configurationअपनी परियोजना का संदर्भ जोड़ना होगा और फिर कनेक्शन स्ट्रिंग प्राप्त करने के लिए नीचे दिए गए कोड का उपयोग करना होगा।

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

2

यह मेरे लिए काम किया:

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

आउटपुट:

डेटा स्रोत =। प्रारंभिक सूची = ओमिडपायमक; इंटीग्रेटेडसिटी = ट्रू "


1

आप नीचे दिए गए कोड का उपयोग करके कनेक्शन स्ट्रिंग ला सकते हैं -

using System; using System.Configuration;

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

यहाँ एक संदर्भ है: App.config से कनेक्शन स्ट्रिंग


2
मैंने वही किया जो यू ने कहा था लेकिन वही अशक्त संदर्भ त्रुटि मुझे मिल रही है।
एनगैमैटिक माइंड

1

ऐसा लगता है कि समस्या संदर्भ के साथ नहीं है, आप कनेक्शन के रूप में अशक्त हो रहे हैं, इसलिए कृपया सुनिश्चित करें कि आपने अपने रनिंग प्रोजेक्ट को मुख्य फ़ाइल / लाइब्रेरी शुरू करने / निष्पादित करने के लिए मान को जोड़ा है।


1

यह संभव है कि इस सवाल में ओपी एक dll के भीतर एक App.Config का उपयोग करने की कोशिश कर रहा है।

इस मामले में, कोड वास्तव में निष्पादन योग्य के App.Config तक पहुंचने की कोशिश कर रहा है न कि dll की। चूंकि नाम नहीं मिला है, इसलिए आपको एक नल वापस मिलता है, इसलिए अपवाद दिखाया गया है।

निम्न पोस्ट सहायक हो सकती है: एक DLL के app.config से ConnectionString शून्य है


0

मैंने System.Configurationलाइब्रेरी का संदर्भ लिया और मेरी भी यही त्रुटि है। डिबग फ़ाइलों में उनका ऐप नहीं था ।config, मैन्युअल रूप से यह फ़ाइल बनाएं। त्रुटि है, मैंने डिबग फ़ोल्डर में फ़ाइल "appname.exe.config" की नकल करते हुए इसे हल किया। IDE फ़ाइल नहीं बना रहा था।


0

मैंने स्ट्रिंग को पढ़ने और एक-एक करके जांच करने के लिए इंडेक्स का उपयोग करके समस्या को हल किया। नाम का उपयोग करके पढ़ना अभी भी वही त्रुटि देता है।
मुझे समस्या है जब मैं C # विंडो एप्लिकेशन विकसित करता हूं, तो मुझे मेरे asp.net एप्लिकेशन में समस्या नहीं थी। सेटिंग में कुछ होना चाहिए जो सही नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.