2013-03-25 10 views
5

मेरा सी # एप्लिकेशन DataSet और TableAdapters का उपयोग करें। वे उत्पन्न वीएस -2008 जीयूआई उपकरण हैं।विंडोज़ फॉर्म एप्लिकेशन में कनेक्शन स्ट्रिंग को संभालने का सबसे अच्छा तरीका क्या है?

उदाहरण:

राइट क्लिक करें परियोजना -> नया आइटम जोड़ें -> डेटासेट

यह विधि एक कनेक्शन स्ट्रिंग app.config में स्वचालित रूप से जोड़ें।

लेकिन कनेक्शन स्ट्रिंग के लिए यह हार्ड कॉर्ड विधि है। मैं कनेक्शन स्ट्रिंग को एक आसान तरीके से बदलना चाहता हूं। लेकिन जब मैंने डेटा सेट का उपयोग किया, तो कनेक्शन स्ट्रिंग एप्लिकेशन प्रॉपर्टी से प्राप्त होती है। क्या इस स्थिति के लिए कोई समाधान है?

enter image description here

यह Settings.Designer.cs में मेरी कनेक्शन स्ट्रिंग दुकान फ़ाइल

namespace WindowsFormsApplication2.Properties { 


    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] 
    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 

     private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 

     public static Settings Default { 
      get { 
       return defaultInstance; 
      } 
     } 

     [global::System.Configuration.ApplicationScopedSettingAttribute()] 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 
     [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] 
     [global::System.Configuration.DefaultSettingValueAttribute("Data Source=SLCERT\\SQLEMK;Initial Catalog=TestDataBase;Integrated Security=True")] 
     public string TestDataBaseConnectionString { 
      get { 
       return ((string)(this["TestDataBaseConnectionString"])); // this is the connection string get from the dataset's 
      } 
     } 
    } 
} 

app.config शामिल

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    </configSections> 
    <connectionStrings> 
     <add name="WindowsFormsApplication2.Properties.Settings.TestDataBaseConnectionString" 
      connectionString="Data Source=SLCERT\SQLEMK;Initial Catalog=TestDataBase;Integrated Security=True" 
      providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
</configuration> 
+0

और क्या आवेदन करना आसान तरीका नहीं है? – alerya

+2

app.config संपादित करने से क्या आसान हो सकता है? –

+1

ऐप।कॉन्फ़िगर आपके आवेदन के साथ है। इसका एक्सएमएल किसी भी पाठ संपादक में आसानी से संपादन योग्य –

उत्तर

6

मुझे विश्वास है कि आप इस से पूछते हैं, इसलिए है कि आपको स्थानीय परीक्षण और उत्पादन/परीक्षण सर्वर के बीच मैन्युअल रूप से परिवर्तन करने की आवश्यकता नहीं है।

आप How to: Transform Web.config When Deploying a Web Application Project

यह app.config के बजाय web.config के बारे में है को देखने के लिए चाहते हो सकता है, लेकिन यह एक ही विचार है।

ps। केवल वीएस 2010 और

+0

हाँ! मैं उससे पूछता हूं। लेकिन अब वेब एप्लिकेशन यह विंडोज फॉर्म एप्लीकेशन – Elshan

+0

है :) तो अच्छा अनुमान है। यहां अधिक जानकारी: http://mitasoft.wordpress.com/2011/09/28/multipleappconfig/ या यहां http://www.hanselman.com/blog/SlowCheetahWebconfigTransformationSyntaxNowGeneralizedForAnyXMLConfigurationFile.aspx –

+0

प्रश्न अपडेट किया गया – Elshan

4

जेपी हेल्लेमन्स द्वारा कॉन्फ़िगरेशन ट्रांसफॉर्मेशन करने के लिए प्रदान किए गए सुझाव के अलावा, कुछ और है जो आप कर सकते हैं, क्योंकि यह केवल .NET 4.0 द्वारा समर्थित (मूल रूप से) है। आप कॉन्फ़िगरेशन फ़ाइल के <connectionStrings/> अनुभाग में कनेक्शन स्ट्रिंग्स की कोई भी संख्या जोड़ सकते हैं, इसलिए "डीबगकनेक्शनस्ट्रिंग" और "रिलीजकनेक्शनस्ट्रिंग" या इसी तरह के जोड़ें।

अब, बिना किसी हस्तक्षेप के इनका उपयोग करने के लिए हर बार पर्यावरण बदल जाता है, आप ट्रेस स्थिरांक का उपयोग कर सकते हैं। दृश्य स्टूडियो में स्थानीय आप DEBUG लगातार सेट के साथ संकलित कर रहे हैं और यह मौजूद नहीं है, तो आप निम्नलिखित की तरह कुछ कर सकते हैं जब रिहाई के लिए की तैनाती पर कहते हैं:

#if DEBUG 
    return ConfigurationManager.ConnectionStrings["DebugConnectionString"]; 
#else 
    return ConfigurationManager.ConnectionStrings["ReleaseConnectionString"]; 
#endif 
+0

यह विधि ठीक है, लेकिन जब मैं प्रयुक्त डेटासेट, मैं अपनी रिलीज से पहले हर बार पुन: कॉन्फ़िगर करना चाहता हूं। (डेटासेट को बनाम 2008 GUI उपकरण द्वारा जेनरेट किया गया है, फिर यह स्वचालित रूप से सेटिंग्स.cs फ़ाइल में कनेक्शन स्ट्रिंग जोड़ देगा) – Elshan

+0

प्रश्न अपडेट किया गया – Elshan

2

app.config में

<configuration> 
<configSections> 
</configSections> 
<connectionStrings> 
    <add name="DBCS" connectionString="Data Source=|DataDirectory|\Database.sdf;password=Password" 
     providerName="Microsoft.SqlServerCe.Client.3.5" /> 
</connectionStrings> 
इस तरह

static string CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString.ToString(); 

शामिल

और एक्सेस करें

System.Configuration; 

नाम स्थान

+0

यह सामान्य प्रस्ताव के लिए ठीक है। लेकिन जब मैं डेटासेट का उपयोग कर रहा हूं (जीयूआई उपकरण का उपयोग कर डेटासेट, वीएस स्वचालित रूप से सेटिंग्स फ़ाइल के माध्यम से कनेक्शन स्ट्रिंग जोड़ता है। मैं उस भाग को प्रतिस्थापित करना चाहता हूं) – Elshan

+1

यदि आप app.config में कनेक्शन स्ट्रिंग का उपयोग करना चाहते हैं। कक्षा को डेटाबेस में डेटा स्टोर से डेटा प्राप्त करें और क्लास को डेटाग्रिडव्यू जैसे नियंत्रण को पॉप्युलेट करने के लिए कॉल करें। – XTGX

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

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