2010-01-20 13 views
6

मेरे पास एएसपीनेट एनटीयर एप्लिकेशन है। डेटा एक्सेस लेयर एक दृढ़ता से टाइप किया गया डेटासेट है जिसमें डेटाएडाप्टर के साथ कई डेटाटेबल्स शामिल हैं। जब उपयोगकर्ता लॉग इन करता है, तो वे चुनते हैं कि किस डेटाबेस से कनेक्ट होना है (सदस्यता डेटाबेस में किसी तालिका से)। मुझे चयनित कनेक्शन स्ट्रिंग को डेटासेट ऑब्जेक्ट में पास करने की आवश्यकता है जो तब तक उन उपयोगकर्ताओं के लिए समान रहेगा जब तक वे दोबारा लॉग इन नहीं करते।एक मजबूत टाइप किए गए डेटासेट के लिए डायनामिक कनेक्शन स्ट्रिंग

मुझे लगता है कि उत्तर डेटासेट ऑब्जेक्ट का आंशिक वर्ग बनाना है जहां मैं कन्स्ट्रक्टर में कनेक्शन स्ट्रिंग पास कर सकता हूं। मुझे यकीन नहीं है कि इस बारे में कैसे जाना है।

चीयर्स

उत्तर

3

आप इसे आंशिक वर्ग के साथ कर सकते हैं।

मान लें आपके लिखे गए डाटासेट HurrDurr कहा जाता है: अगर यह अशक्त पहली बार कनेक्शन आंतरिक संपत्ति पहुँचा है

public partial class HurrDurr 
{ 
    public HurrDurr(string connex) 
    {  
    this._connection = new global::System.Data.SqlClient.SqlConnection(); 
    this._connection.ConnectionString = connex; 
    } 
} 

_connection केवल आरंभ नहीं हो जाता।

+0

क्या, मैंने vb.net में आपके सुझाव की कोशिश की लेकिन मुझे एक त्रुटि मिल रही है: "त्रुटि 33 _ कनेक्शन 'DAL.ds1 का सदस्य नहीं है"। कोई विचार जहां मैं गलत जा रहा हूँ? – SausageFingers

+0

@fly मुझे नहीं पता कि एक .ds1 फ़ाइल क्या है। आप टाइप किए गए डेटासेट टूल द्वारा बनाए गए कोड पर देख सकते हैं (xsd का विस्तार करें और कोड फ़ाइलों को देखें)। वीबी संस्करण कनेक्शन को एक अलग चर नाम में सहेज सकता है। – Will

+0

क्षमा करें मुझे स्पष्ट होना चाहिए था। DAL.ds1 प्रोजेक्ट नाम "DAL" और डेटासेट नाम "ds1" को संदर्भित करता है। "डीएस 1" एक्सएसडी से उत्पन्न वर्ग है, मुझे लगता है कि आप यही है जिसे आप HurrDurr के रूप में संदर्भित करते हैं। कोड को देखने के बाद, मुझे तालिका एडाप्टर में _connection सदस्य चर दिखाई देता है? क्या मुझे इसके खिलाफ आंशिक वर्ग बनाने की ज़रूरत है? – SausageFingers

3

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

नीचे आंशिक वर्ग मैं बनाया जो मुझे गतिशील रूप से एक मेज कहा जाता tblOptions के लिए मेरी मेज एडेप्टर में से एक के कनेक्शन स्ट्रिंग को बदलने की अनुमति है:

Namespace ds1TableAdapters 
    Partial Public Class tblOptionsTableAdapter 
     Sub ChangeConnString(ByVal newConn As String) 
      Me._connection.ConnectionString = newConn 
     End Sub 
    End Class 
End Namespace 

में मदद मिलेगी के लिए धन्यवाद, यह मेरे में जा मिला सही दिशा

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