दिलचस्प पोस्ट
रूबी फ़ाइल क्या हैं.पैकेज मोड और विकल्प हैं? सी # में टेम्पलेट विशेषज्ञता कैसे करें क्या जावा में जावा के var_dump (PHP) के बराबर है? डॉक करने वाले कंटेनर में मेजबान निर्देशिका कैसे माउंट करें? खोज का प्रदर्शन () बनाम फर्स्टऑरिफॉल्ट () एंड्रॉइड: मैं ViewPager WRAP_CONTENT नहीं कर पा रहा हूं अपरिभाषित फ़ंक्शन apache_request_headers () को कॉल करें स्कला के "जादू" कार्यों की सूची विधि अतिभारित और सबसे विशिष्ट प्रकार का चयन गिट और हार्ड लिंक Rails 'link_to विधि: इसे कब हटा देना चाहिए पृष्ठ पुनः लोड पर मेनू स्थिति कैसे रखनी है मैं NSString मान को NSData में कैसे रूपांतरित करूं? एक कॉलम में अंतिम गैर खाली सेल एंड्रॉइड इम्यूलेटर फ्रीजिंग ओएस एक्स v10.9 (मावरिक्स) HAXM के साथ

डेटाबेस फ़ाइल के सापेक्ष पथ के साथ कनेक्शन स्ट्रिंग

मैं winforms ऐप में sdf डेटाबेस से डेटा लोड मैं डेटाबेस फ़ाइल के लिए पूर्ण पथ का उपयोग करता हूं। उदाहरण :

conn = new SqlCeConnection { ConnectionString ="Data Source=F:\\My Documents\\Project1\\bin\\Debug\\Database.sdf" }; 

मैं डेटाबेस फ़ाइल के लिए एक सापेक्ष पथ का उपयोग करना चाहता हूँ। उदाहरण के लिए। मेरे पास फ़ोल्डर एफ: \ माई दस्तावेज़ \ प्रोजेक्ट 1 \ बिन \ डीबग \ डेटा \ file.sdf में एसडीएफ फाइल है और मैं कनेक्शन स्ट्रिंग में सापेक्ष पथ का उपयोग करना चाहता हूं। कोई सलाह ? धन्यवाद।

Solutions Collecting From Web of "डेटाबेस फ़ाइल के सापेक्ष पथ के साथ कनेक्शन स्ट्रिंग"

तुलनात्मक पथ:

 ConnectionString = "Data Source=|DataDirectory|\Database.sdf"; 

निष्पादन योग्य मार्ग के रूप में डाटाडाइरेक्टरी संशोधित करना:

 string executable = System.Reflection.Assembly.GetExecutingAssembly().Location; string path = (System.IO.Path.GetDirectoryName(executable)); AppDomain.CurrentDomain.SetData("DataDirectory", path); 

इस कोड को कार्य निर्देशिका में आज़माएं यदि डेटाबेस फ़ाइल नीचे की तरह मौजूद है

डी: \ HMProject \ Database \ HMProject.sdf

 string Path = Environment.CurrentDirectory; string[] appPath = Path.Split(new string[] { "bin" }, StringSplitOptions.None); AppDomain.CurrentDomain.SetData("DataDirectory", appPath[0]); 

.sdf फ़ाइल के लिए कनेक्शन स्ट्रिंग

<add name="LocalDB" connectionString="metadata=res://*/Client.HMProject.csdl|res://*/Client.HMProject.ssdl|res://*/Client.HMProject.msl;provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;Data Source=|DataDirectory|\Database\HMProjectDB.sdf;Password=HMProject;Persist Security Info=False;&quot;" providerName="System.Data.EntityClient" />

धन्यवाद

सीके नितिन (टिनटिन)

क्या करने के लिए सापेक्ष, आपके आवेदन? यदि ऐसा है तो आप बस एप्लिकेशन के साथ मौजूदा पथ प्राप्त कर सकते हैं:

 System.Environment.CurrentDirectory 

और इसे कनेक्शन स्ट्रिंग में जोड़ें

कनेक्शन स्ट्रिंग में सापेक्ष पथ के साथ कई अजीब त्रुटियों के बाद मुझे यह यहां पोस्ट करने की आवश्यकता महसूस हुई।

"| DataDirectory |" का उपयोग करते समय या "~" आपको "../" का उपयोग करने के लिए ऊपर और बाहर जाने की अनुमति नहीं है!

उदाहरण परियोजनाओं में से एक में रखी वही स्थानीयडीबी फ़ाइल तक पहुंचने वाली कई परियोजनाओं का उपयोग कर रहा है।

"~ /../ अन्य" और "| डेटाडायरेक्टरी / /../ अन्य" विफल हो जाएंगे

यहां तक ​​कि अगर यह स्पष्ट रूप से एमएसडीएन में लिखा गया है , तो यहां तक ​​कि त्रुटियों की वजह से यह स्पष्ट नहीं हो पाया है कि यहां पर पता नहीं चल पाया है और इसे यहां पर नहीं मिल सका है।

  <?xml version="1.0"?> <configuration> <appSettings> <!--FailIfMissing=false --> <add key="DbSQLite" value="data source=|DataDirectory|DB.db3;Pooling=true;FailIfMissing=false"/> </appSettings> </configuration> 

क्या आप नीचे कोड ब्लॉक के साथ प्रयास करें, जो कि वास्तव में आप के लिए देख रहे हैं:

 SqlConnection conn = new SqlConnection { ConnectionString = "Data Source=" + System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\Database.sdf" }; 

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

string Connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+HttpContext.Current.Server.MapPath("\\myPath\\myFile.db")+";Extended Properties=\"Excel 12.0 Xml;HDR=YES\"";

मैं एक एक्सएलएसएक्स फाइल पूछता हूं इसलिए कनेक्शन स्ट्रिंग में किसी भी अन्य चीज के बारे में चिंता मत करो, लेकिन डेटा स्रोत।

तो HttpContext.Current.Server.MapPath("\\myPath\\myFile.db") जवाब है।

आपकी कॉन्फ़िग फाइल में रिश्तेदार पथ दे

 ConnectionString = "Data Source=|DataDirectory|\Database.sdf"; 

अपने निष्पादन योग्य पथ में DataDirectory बदलें

 string path = AppDomain.CurrentDomain.BaseDirectory; AppDomain.CurrentDomain.SetData("DataDirectory", path); 

यदि आप EntityFramework का उपयोग कर रहे हैं, तो आप अपने संदर्भ कक्षा में DataDirectory पथ सेट कर सकते हैं

मैंने इसे web.config फ़ाइल में किया था। मैंने सोभान के जवाब में कहा, धन्यवाद बीटीडब्ल्यू

 <connectionStrings> <add name="listdb" connectionString="Data Source=|DataDirectory|\db\listdb.sdf"/> </connectionStrings> 

जहां "डीबी" "App_Data" निर्देशिका के बजाय मेरी डेटाबेस निर्देशिका बनती है

और इसके साथ सामान्य रूप से खोला गया:

var डीबी = डाटाबेस। खोलें ("listdb");