2010-07-29 9 views
17

मैं सी # से SQL सर्वर डेटाबेस में डेटा में परिवर्तनों को सुनना चाहता हूं। मैं उम्मीद कर रहा था कि कुछ प्रकार के श्रोता होंगे जो मैं यह निर्धारित करने के लिए उपयोग कर सकता हूं कि मेरे पास जो डेटा है वह पुराना है। काफी आम परिदृश्य होने के बावजूद मुझे कोई समाधान नहीं मिल रहा है जो डेटाबेस को आसानी से मतदान नहीं कर रहा है।एसक्यूएल सर्वर डेटाबेस बदलें श्रोता सी #

मैं डेटा का उपयोग और इसलिए एक DataContext वस्तु के लिए LINQ करने के लिए-एसक्यूएल उपयोग करते हैं, मुझे उम्मीद थी मैं डेटा बदल घटना पर एक को सुन सके लेकिन मैं एक खोजने के लिए प्रतीत नहीं कर सकते हैं।

मुझे सराहना है कि यह एक गैर-तुच्छ बाधा है (सी # विधि से एसक्यूएल सर्वर डीबी तक), कारण मुझे यह हल करने की समस्या है कि यह जीयूआई के लिए एक आम आवश्यकता है। यदि अपडेट के लिए सुनना संभव नहीं है तो आप जीयूआई ताजा में प्रदर्शित डेटा को कैसे रखें (जब यह SQL सर्वर डेटा स्रोत द्वारा समर्थित है)।

इस हालांकि जीयूआई काम मैं उस दायरे से कुछ अनुकूल करने के लिए उम्मीद कर रहा था के लिए नहीं है।

वहाँ एक रास्ता सी # में SQL सर्वर डाटाबेस परिवर्तन की घटनाओं की सदस्यता के लिए है?

उत्तर

1

आप एसक्यूएल सर्वर 2008 का उपयोग कर रहे हैं, तो वहाँ बदलें डाटा कैप्चर कि बहुत आसान है में एक बनाया गया है।

http://msdn.microsoft.com/en-us/library/bb522489.aspx

आप सीडीसी डेटा पढ़ सकते हैं।

5

मैंने पहले कभी उनका उपयोग नहीं किया है, लेकिन क्या आपने SQL सर्वर ईवेंट अधिसूचनाओं का प्रयास किया है? इस आलेख को देखें: Getting Started with SQL Server Event Notifications

5

आप SqlDependency class की तलाश में हैं, जो आपको SQL क्वेरी के परिणामस्वरूप परिवर्तनों को सुनने की अनुमति देता है।

3

DataContext आप SQL सर्वर के साथ श्रोता कार्यक्षमता के किसी भी प्रकार के लिए नहीं कहेगा। आपकी सबसे अच्छी शर्त एक मतदान आवेदन, या यहां तक ​​कि एक अलग धागा बनाना है जो डेटाबेस को समय-समय पर परिवर्तनों के लिए मतदान करता है और एक ऐसा कार्यक्रम पेश करता है जिसका आपका मुख्य एप्लिकेशन सुन सकता है।

0

मैं DB में एक ही पंक्ति के साथ एक मेज का उपयोग इस तालिका अद्यतन करने के लिए और फिर परिवर्तन के लिए इस तालिका पोल महत्व के प्रत्येक मेज पर पिछले, अद्यतन डाला, या नष्ट घटनाओं सूची और फिर बनाने के लिए ट्रिगर करने के लिए होगा।

+0

इसका कारण यह है आप लगातार तालिका की निगरानी करने की आवश्यकता होगी और भी बदतर डीबीएस तेजी से बदल के लिए काम नहीं होता है, और, वहाँ कोई गारंटी आप जांचों के बीच परिवर्तन लंघन नहीं कर रहे हैं। – PedroC88

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