How can I get notified in C# WinForms of external MS Access database updates? -


मेरे पास एक DataGridView है जो एक एमएस एक्सेस डाटाबेस से डाटा प्रदर्शित करता है मैं DataGridView में डेटा को लिंक करने के लिए DataSet का उपयोग कर एक TableAdapter और BindingSource के साथ कर रहा हूँ :

  तालिकाएडैप्टर = नया लेखाटैबअॅप्टर (); डेटाटेबल = नए खाते.एकाउंटडेटाटेबल (); tableAdapter.Fill (DataTable); टेबलबैंगिंग स्रोत = नया बाइंडिंग स्रोत (); TableBindingSource.DataSource = डेटाटेबल; DataGridView1.DataSource = tableBindingSource;  

मुझे पता है कि मैं कैसे पता लगा सकता हूँ या अधिसूचित किया जा सकता है जब डेटाबेस टेबल मेरे आवेदन के बाहर से संशोधित हो जाता है - पंक्ति अद्यतन, सम्मिलित करता है, डेटाबेस को एक्सेस इंटरफ़ेस से हटाया जाता है या अलग एप।

इसके अलावा, इस प्रक्षेपित अधिसूचना पर, मैं अपने डाटासेट को कैसे अद्यतन कर सकता हूं ताकि केवल प्रभावित पंक्तियों को अपडेट किया जा सके -> केवल नये डाले गए पंक्तियों को प्राप्त करें, संशोधित लोगों के प्रभावित फ़ील्ड मानों और हटाए गए अनुक्रमित।

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

एकमात्र तरीका मुझे पता है कि डेटाबेस का चुनाव करना है यदि डेटा में अंतिम संशोधित फ़ील्ड है, तो आप अद्यतन पंक्तियों को प्राप्त करने के लिए डेटाबेस से अनुरोध कर सकते हैं और फिर परिणामों को अपने डेटासेट में मर्ज कर सकते हैं।

उदाहरण के लिए, मान लें कि आप एसक्यूएल से "फॉर्मेट से संपर्क करें" चुनें। फिर हर मिनट या तो, क्वेरी "SELECT * FROM CONTACT WHERE LastModified> @LastFetched" चलाएं, जहां @LastFetched वह समय होता है जब आपको पिछली बार अद्यतन मिलते हैं आपको ग्राहक से @LastFetched के लिए मान प्राप्त करना होगा, क्योंकि क्लाइंट मशीन और डेटाबेस सर्वर के पास अपना समय ठीक से काम करने के लिए पर्याप्त रूप से सिंक्रनाइज़ नहीं हो सकता है।

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


Comments