मेरे पास एक कोड नाम है प्रश्न एक फ़ील्ड नाम के साथ qcategory । डब्ल्यूएफए में मेरे पास टूलस्ट्रिपमेनू है जहां मेरे पास सिमुलेशन नाम वाला एक वर्ग है और एक उप-श्रेणी वाला नाम है B । इसलिए, मैं एक mysql का चयन करना चाहता हूं जहां केवल उन पंक्तियों का चयन करना होगा जो मान उप-श्रेणी मान के बराबर हैं। (कॉलम qcategory तालिका से मान B है)। यह स्ट्रिंग है:
स्थिर स्ट्रिंग डेटाए = "चुनें अंतर * रैंड द्वारा प्रश्न क्रम () सीमा 1"; एकमात्र समस्या यह है कि मेरे पास दो रूप हैं मेनू और एक के साथ एक, जहां मैं यह चयन करना चाहता हूं।
आपको अपनी UI- कोड और आपके डेटाबेस कोड इसे लेयरिंग (एमवीवीएम, एमवीसी, एमवीपी, ...) कहा जाता है लेकिन आपको नहीं करना पड़ता है!
कई तरीके हैं:
1) एक वर्ग बनाओ जो दोनों फॉर्म आपके डेटाबेस तर्क को संदर्भ और निष्पादित कर सकते हैं (यह अभी के लिए सबसे अच्छा तरीका होगा)
2) मेनू के साथ अपने प्रपत्र में कोई इवेंट बनाएं और अन्य फ़ॉर्म में उस पर प्रतिक्रिया दें
3) आपका मेनू फ़ॉर्म अन्य फॉर्म के संदर्भ में और चयनित उप-मान को पारित करने पर एक विधि को निष्पादित करता है।
कोड में
1
सार्वजनिक स्थिर वर्ग SqlClass {सार्वजनिक स्थिर शून्य ExecuteQuery (स्ट्रिंग मेनू इटैम) {// execute query}} फॉर्म 1 // मेनू परिवर्तित ... SqlClass.ExecuteQuery (menuItem) 2
फॉर्म 1: सार्वजनिक ईवेंट इवेंटहान्डलर & lt; स्ट्रिंग & gt; MenuItemChanged; // मेनू बदल गया है ... अगर (this.MenuItemChanged! = नल) यह.MenuItemChanged (यह, menuitem) फॉर्म 2: सार्वजनिक फॉर्म 2 (फॉर्म 1 अन्यफॉर्म) {InitializeComponent (); _otherForm.MenuItemChange + = // ... अपने एसक्यूएल कोड को संभाल कर) 3
निजी रीडोनली फॉर्म 2 _otherForm; सार्वजनिक फॉर्म 1 (फॉर्म 2 अन्य फॉर्म) {इनिशियलाइजमेंट (); _otherForm = otherForm; } // मेनू बदल गया ... otherForm.ExecuteQuery (menuitem); उदाहरण के लिए, प्रपत्र 2 एक ऐसा प्रपत्र है जहां आप अपनी क्वेरी निष्पादित करना चाहते हैं क्योंकि परिभाषित विधि / ईवेंट-हैंन्डलर है जो आपके डेटाबेस से इंटरैक्ट करेगा। समाधान समझने के लिए, आपको एक उच्च स्तर के परिप्रेक्ष्य की आवश्यकता है - आपको एक फॉर्म (एक कक्षा) के पीछे कोड में जानकारी मिलती है और आप उस जानकारी को कहीं और का उपभोग करना चाहते हैं । सामान्य रूप से आपको उस फॉर्म के संदर्भ की आवश्यकता होती है जो आपको आपकी रुचि वाली जानकारी रखती है और यह आपको तब बताती है जब बदल (घटना) या जानकारी स्रोत जानकारी हर रुचि वाले गंतव्य (कॉल को एक विधि) बताती है। इसके बाद सूचना स्रोत उपभोक्ताओं के संदर्भ रखता है।
दोनों ही अवधारणाएं संचार (और संदर्भ) परिवर्तनों की दिशा में ही हैं।
वैकल्पिक (विकल्प 1) यह है कि आप अपनी जानकारी गंतव्य कहीं और (उदाहरण के लिए एक स्थिर वर्ग में) और इसे वहां का उपभोग करते हैं जानकारी को पारित करने का तंत्र बहुत ज्यादा समान है (पैरामीटर वाला विधि कॉल के माध्यम से), लेकिन यह डेटाबेस कोड (एसक्यूएल क्वेरी निष्पादन) से यूआई-शीत (फॉर्म) का समापन करता है
No comments:
Post a Comment