कनेक्शन संपत्ति के रूप में आंतरिक परिभाषित किया गया है: टेबल एडाप्टर का उपयोग करते।
internal global::System.Data.SqlClient.SqlConnection Connection
तो मामले में अपने TypedDataset नहीं में अपने मुख्य खिड़कियों के रूप में ही विधानसभा रूपों अनुप्रयोग, आप पहुँच कनेक्शन संपत्ति के लिए सक्षम नहीं होगा है। यह समस्या तब हो सकती है जब आप अपने डेटासेट कोड को दोबारा दोहराएं और को एक अलग परियोजना में ले जाएं जो अपनी स्वतंत्रता असेंबली का उत्पादन करेगा।
इस समस्या को हल करने के लिए, आप नीचे बताए अनुसार कर सकते हैं।
अपने टेबल एडाप्टर के लिए आंशिक कक्षा बनाएं और डिफ़ॉल्ट सार्वजनिक पैरामीटर रहित कन्स्ट्रक्टर के बगल में एक और कन्स्ट्रक्टर जोड़ें। के रूप में MyTableAdapter
public partial class MyTableAdapter
{
public MyTableAdapter(SqlConnection connection)
{
thisSetConnection(connection);
this.ClearBeforeFill = true;
}
public void SetConnection(SqlConnection connection)
{
this._connection = connection;
}
}
आप TableAdapters आप अपनी परियोजना में है के रूप में कई के लिए यह करने के लिए की आवश्यकता होगी मान लिया जाये कि TableAdapter प्रकार। TableAdapter में कोई सामान्य बेस क्लास नहीं है लेकिन धन्यवाद कि उन्हें आंशिक कक्षाओं के रूप में घोषित किया गया है, इसलिए हम इसे ऊपर वर्णित तरीके से करने में सक्षम हैं।
अब रनटाइम पर, तो आप इस तरह अपने TableAdapter का एक उदाहरण बना सकते हैं ..
SqlConnection connection;
//create the connection here at runtime..
MyTableAdapter adapter = new MyTableAdapter(connection);
या आप डिफ़ॉल्ट parameterless सार्वजनिक निर्माता के साथ TableAdapter उदाहरण बनाने के बाद भी इसे बाद में आवंटित किया जा सकता है ..
SqlConnection connection;
//create the connection here at runtime..
MyTableAdapter adapter = new MyTableAdapter();
adapter.(connection);
स्रोत
2010-05-27 08:13:53
वीएस -2010 के रूप में कनेक्शन की दृश्यता हो सकती है pecified (उदा। सार्वजनिक) और उत्पन्न डेटाटेबल एडाप्टर के लिए बेस क्लास निर्दिष्ट कर सकते हैं ... (यानी, यह पोस्ट ज्यादातर वीएस 2008 से संबंधित है और पूर्व समस्याएं :-) –