2009-06-17 9 views
24

जब मैं अपना आवेदन शुरू करता हूं तो मुझे मिलता है: कनेक्शन स्ट्रिंग प्रॉपर्टी प्रारंभ नहीं की गई है।"कनेक्शन कनेक्शन को प्रारंभ नहीं किया गया है"

Web.config:

<connectionStrings> 
    <add name="MyDB" 
     connectionString="Data Source=localhost\sqlexpress;Initial Catalog=mydatabase;User Id=myuser;Password=mypassword;" /> 
</connectionStrings> 

ढेर किया जा रहा है:

System.Data.SqlClient.SqlConnection.PermissionDemand() +4876643 
System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection) +20 
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117 
System.Data.SqlClient.SqlConnection.Open() +122 

मैं काफी नेट के लिए नया हूँ और मैं इस एक नहीं मिलता है। मुझे Google पर बहुत सारे जवाब मिलते हैं, लेकिन कोई भी वास्तव में मेरी समस्या को ठीक नहीं करता है।

इसका क्या अर्थ है? क्या मेरा web.config खराब है? क्या मेरा काम खराब है? क्या मेरा एसक्यूएल कॉन्फ़िगरेशन सही तरीके से काम नहीं कर रहा है (मैं स्क्लेक्सप्रेस का उपयोग कर रहा हूं)?

मेरी मुख्य समस्या यह है कि मुझे यकीन नहीं है कि इसे डीबग करना शुरू करना है ... कुछ भी मदद करेगा।

संपादित करें:

Failling कोड:

MySQLHelper.ExecuteNonQuery(
ConfigurationManager.AppSettings["ConnectionString"], 
CommandType.Text, 
sqlQuery, 
sqlParams); 

sqlQuery "तालिका से चयन *" की तरह एक प्रश्न है। sqlParams यहां प्रासंगिक नहीं है।

दूसरी समस्या यह है कि मेरी कंपनी MySQLHelper का उपयोग करती है, और मेरे पास इसकी कोई दृश्यता नहीं है (केवल एक सहायक lib के लिए एक डीएल है)। यह अन्य परियोजनाओं में ठीक काम कर रहा है, इसलिए मैं 99% हूं कि त्रुटि यहां से नहीं आती है।

मुझे लगता है कि कोड को देखे बिना इसे डीबग करने का कोई तरीका नहीं है, मुझे कोड प्राप्त करने के लिए इस सहायक को बनाने वाले व्यक्ति के संपर्क में आने के लिए इंतजार करना होगा।

+1

क्या आप वेब कॉन्फिगर से कनेक्शन स्ट्रिंग पोस्ट कर सकते हैं, और इसका उपयोग करने वाले असफल कोड? – kscott

+0

कुछ infos – marcgg

उत्तर

27

कनेक्शन स्ट्रिंग संदर्भित जैसे किया जाना चाहिए:

MySQLHelper.ExecuteNonQuery(
ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString, 
CommandType.Text, 
sqlQuery, 
sqlParams); 

ConfigurationManager.AppSettings["ConnectionString"] कुछ ConnectionString नाम है, जो यह नहीं मिल जाएगा के लिए AppSettings में देख रहा होगा। यही कारण है कि आपके त्रुटि संदेश ने "ConnectionString" property has not been initialized का संकेत दिया, क्योंकि यह नामित ConnectionString नाम की प्रारंभिक संपत्ति की तलाश में है।

ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString "MyDB" नामक कनेक्शन स्ट्रिंग को देखने के लिए निर्देश देता है।

Here is someone talking about using web.config connection strings

+0

यह तय किया गया! क्या मैं बुरी आदत कर रहा हूं? – marcgg

+0

आपका मतलब क्या है? जिस तरह से आप कनेक्शन स्ट्रिंग का संदर्भ देने का प्रयास कर रहे थे, वह गलत था, हालांकि यदि आप AppSettings के कुछ नोड के मान को संदर्भित करने का प्रयास कर रहे थे, तो यह सही होगा। – kscott

+0

मेरा मतलब था, क्या कनेक्शन स्ट्रिंग को उस तरह से खराब करने का बुरा है? – marcgg

15

आपको यह त्रुटि तब मिलती है जब डेटासॉर डेटा से जुड़ने का प्रयास करता है लेकिन ऐसा नहीं कर सकता क्योंकि यह कनेक्शन स्ट्रिंग नहीं ढूंढ सकता है। मेरे अनुभव में, यह आमतौर पर web.config में किसी त्रुटि के कारण नहीं होता है (हालांकि मुझे इस बारे में 100% निश्चित नहीं है)।

यदि आप प्रोग्रामेटिक रूप से एक डेटास्रोत (जैसे SQLLataSource) असाइन कर रहे हैं या एक क्वेरी बना रहे हैं (यानी एक SQLConnection/SqlCommand संयोजन का उपयोग करके), सुनिश्चित करें कि आपने इसे कनेक्शन कनेक्शन असाइन किया है।

SqlConnection myCon = new SqlConnection(ConfigurationManager.ConnectionStrings[nameOfString].ConnectionString; 

आप एक डेटा स्रोत के लिए एक डेटाबाउंड तत्व (यानि एक GridView या एक SQLDataSource को ComboBox) ऊपर hooking रहे हैं, तो सुनिश्चित करें कि डेटा स्रोत अपने कनेक्शन तार में से एक करने के लिए आवंटित किया गया है।

अपना कोड पोस्ट करें (डाटाबेस तत्व और वेब.कॉन्फिग सुरक्षित होने के लिए) और हम इसे देख सकते हैं।

संपादित करें: मुझे लगता है कि समस्या यह है कि आप AppSettings क्षेत्र से कनेक्शन स्ट्रिंग प्राप्त करने का प्रयास कर रहे हैं, और प्रोग्रामेटिक रूप से यह मौजूद नहीं है। ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString के साथ इसे बदलने का प्रयास करें (यदि कनेक्शनस्ट्रिंग आपकी कनेक्शन स्ट्रिंग का नाम है।)

+0

जोड़ा मैंने कुछ कोड जोड़ा, यह सुनिश्चित नहीं है कि यह मेरी समस्या को स्पष्ट बनाता है या नहीं। – marcgg

+0

मुझे यकीन नहीं है कि मुझे यह मिल रहा है, क्या मुझे web.config में अपनी कनेक्शन स्ट्रिंग का स्थान ले जाना चाहिए? – marcgg

+0

यह ऐपसेटिंग में नहीं है btw – marcgg

3

कनेक्शन स्ट्रिंग नहींमें AppSettings है।

System.Configuration.ConfigurationManager.ConnectionStrings["MyDB"]... 
0

उपयोग [] के बजाय() के उदाहरण के नीचे के रूप में:

क्या आप देख रहे हैं में है।

SqlDataAdapter adapter = new SqlDataAdapter(sql, ConfigurationManager.ConnectionStrings["FADB_ConnectionString"].ConnectionString); 
      DataTable data = new DataTable(); 
      DataSet ds = new DataSet();