2012-01-02 23 views
5

में कनेक्शन स्ट्रिंग के साथ समस्या मैं वेब कॉन्फ़िगरेशन फ़ाइल में MySQL कनेक्शन सेट करने का प्रयास कर रहा हूं।वेब कॉन्फ़िगरेशन फ़ाइल

<connectionStrings> 
    <add name="connstring" 
     connectionString="DRIVER={MySQL ODBC= 3.51=  Driver};Database=marctest;Server=localhost;UID=root;PWD=1234;" 
     providerName="System.Data.SqlClient"/> 
    </connectionStrings> 

और मैं निम्न चरण में उस तक पहुंचने में कर रहा हूँ:

MySqlConnection connmysql = new MySqlConnection(WebConfigurationManager.ConnectionStrings["connstring"].ConnectionString); 

जब मैं अपने कोड चलाने यह एक अशक्त संदर्भ अपवाद उत्पन्न वस्तु संदर्भ नहीं "

यहाँ कनेक्शन स्ट्रिंग कोड है। किसी ऑब्जेक्ट के उदाहरण पर सेट करें। "

मैं इस समस्या को कैसे हल कर सकता हूं?

+0

आप MySQL .NET कनेक्टर का उपयोग क्यों नहीं कर रहे हैं? http://dev.mysql.com/downloads/connector/net – Lloyd

उत्तर

7

आप MySql .Net Connector उपयोग कर रहे हैं तो आपके विन्यास की स्थापना निम्नलिखित

<add name="connstring" connectionString="server=localhost;User Id=root;Persist Security Info=True;database=marctest;password=PASSWORD" providerName="MySql.Data.MySqlClient"/> 

के लिए इसी तरह दिखना चाहिए फिर अपने कोड की तरह दिखना चाहिए।

using (MySqlConnection dbConn = new MySqlConnection(ConfigurationManager.ConnectionStrings["connstring"].ConnectionString)) 
{ 
    // Database work done here 
} 
+0

मैं एक का उपयोग कर रहा हूं इसी प्रकार का कोड लेकिन समस्या अभी भी हल नहीं हो रही है! –

+0

"समान" या वही, जैसा कि "कनेक्शनस्ट्रिंग" सेटिंग बहुत महत्वपूर्ण है, यदि यह गलत है तो कनेक्शन प्रारंभ नहीं किया जाएगा। कॉन्फ़िगरेशन फ़ाइल और कोड पर "connstring" की वर्तनी जांचें। – Lloyd

4

मुझे लगता है कि आपके पास MySQL कनेक्टर/नेट एपीआई है। ProviderName विशेषता बदलें और ConnectionStrings पर एक नज़र डालें। यह MySql.Data.MySqlClient होना चाहिए और System.Configuration.ConfigurationManager.ConnectionStrings संग्रह का उपयोग करें।

+0

यह पहले से ही किया गया है लेकिन अभी भी एक ही त्रुटि है। इसे हल करने का कोई और तरीका? –

+0

आपके द्वारा कौन सा web.config उपयोग किया जाता है? क्या यह रूट या उप-डीआईआर पर है? – adatapost

0

आप की जाँच करनी चाहिए पहले निम्नलिखित:

ConfigurationManager.ConnectionStrings["connstring"].ConnectionString 

एक स्ट्रिंग देता है, तो आप इसे उत्पादन के लिए Response.Write साथ लिख सकते हैं या इसे देख डिबगर

का उपयोग कर यदि आप ऊपर चरण से स्ट्रिंग हो सकता है , क्लास WebConfigurationManager को देखने के लिए जांचें जिसका आप उपयोग कर रहे हैं तत्काल है और शून्य नहीं है।

अगर आप 1 कदम से स्ट्रिंग नहीं मिलता है, तो आप अपने कोड फ़ोल्डर में एक और web.config जो एक वर्चुअल निर्देशिका होगा हो सकता है और अपने web.config अधिभावी किया जा सकता है

आपका connectionStrings खंड के अंदर configuration होना चाहिए Web.config फ़ाइल की और निम्नलिखित

<configuration> 
    <connectionStrings> 
    <add name="connstring" connectionString="..." providerName="..." /> 
    </connectionStrings> 

    <appSettings> 
    ... 
    </appSettings> 
</configuration> 

एक शुद्ध * .aspx पेज से कनेक्शन स्ट्रिंग पढ़ने और यदि आप इसे पहले उपयोग कर सकते हैं देखने की कोशिश की तरह दिखना चाहिए।

एक एएसपीएक्स फ़ाइल बनाएं और इसमें निम्न पेस्ट करें और इसे अपने ब्राउज़र से कॉल करें।

<%@ Page Language="C#" %> 
<% 
Response.Write(ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString); 
%> 

अगर अभी भी आप कनेक्शन स्ट्रिंग नहीं पढ़ सकते हैं, आपके सवाल को संपादित करने और पूर्ण web.config और भी वर्ग फ़ाइल है कि आप अपने कनेक्शन बनाने के लिए मुझे देखने के लिए के लिए क्या जा सकता कोशिश कर रहे हैं जोड़ने कृपया गलत

+0

यह स्ट्रिंग मान को वापस नहीं करता है (एक ही त्रुटि फेंकता है)। और मुझे अपने प्रोजेक्ट फ़ोल्डर में कोई अन्य web.config फ़ाइल नहीं मिली है। किसी अन्य तरीके से इसे हल किया जा सकता है ?? –

+0

मैंने अपना जवाब अपडेट किया है, कृपया मुझे बताएं कि क्या आप अभी भी अपने पेज – AaA

+0

में कनेक्शन स्ट्रिंग नहीं देख सकते हैं, मुझे संदेह है कि आप 'System.Web.UI.Page' के अलावा किसी अन्य वर्ग से अपना कनेक्शन बना रहे हैं, इसलिए ऑब्जेक्ट 'कॉन्फ़िगरेशन प्रबंधक' स्वचालित रूप से तत्काल नहीं है – AaA

संबंधित मुद्दे