एसक्यूएल अपवादों की बेहतर ग्रैन्युलरिटी?

सी # में एसक्यूएल अपवादों के साथ एक बेहतर ग्रैन्युलरिटी प्राप्त करने का कोई तरीका है?

मुझे पता है कि एक भयानक बहुत कुछ गलत हो सकता है लेकिन मैं कुछ मामलों से अलग-अलग मामलों से निपटना चाहता हूं और त्रुटि संदेश को पार्स करना बहुत ही सुरुचिपूर्ण प्रतीत नहीं होता है।

फ्रेमवर्क द्वारा बनाए गए त्रुटि संदेश भी हैं या क्या वे विशिष्ट हैं?

उदाहरण के लिए यदि मेरे पास INSERT पर प्राथमिक कुंजी उल्लंघन है तो त्रुटि संदेश हमेशा होता है:

प्राथमिक कुंजी बाधा 'PK_tblProduct' का उल्लंघन। ऑब्जेक्ट 'dbo.tblProduct' में डुप्लिकेट कुंजी सम्मिलित नहीं कर सकता।

या वह SQLServer विशिष्ट है।

अपडेट

मुझे लगता है कि मैं त्रुटि संख्या के बाद हूं, कोई विचार जहां मैं विभिन्न त्रुटि संख्या प्राप्त कर सकता हूं?

एक त्वरित गूगल के साथ मैं सबसे अच्छा कर सकता हूं: 18456: लॉगऑन असफल रहा 18488: पासवर्ड समाप्त हो गया

0

5 उत्तर

SQLException का नम्बर सदस्य ऐसा लगता है जो मैं बाद में हूं, यहां उन संख्याएं हैं जिन्हें मैंने अभी तक पता चला है:

  • 17: SQL सर्वर मौजूद नहीं है या इनकार किया गया है।
  • 4060: अमान्य डेटाबेस
  • 18456: लॉगिन विफल
  • 547: विदेशीकी उल्लंघन
  • 1205: डेडलॉक विक्टिम
  • 2627, 2601: अद्वितीय सूचकांक/निरंतर उल्लंघन
0
जोड़ा

आपके प्रश्न के अंतिम भाग का उत्तर देने के लिए: त्रुटि संदेश का विवरण डेटाबेस पर निर्भर करेगा। कुछ मानक एसक्यूएल त्रुटि कोड हैं, लेकिन वास्तविक पाठ डीबीएमएस से डीबीएमएस में बदल जाएगा। यहां तक ​​कि SQL मानक त्रुटि कोड लौटाए गए हैं या नहीं, डीबीएमएस पर निर्भर करता है।

0
जोड़ा

यदि आप एक SqlException , आपके पास नम्बर , जो आपको SQL त्रुटि संख्या देता है; यह शायद आपका सबसे अच्छा तरीका है ... (आप InfoMessage ईवेंट से भी गैर-घातक त्रुटियों के लिए प्राप्त कर सकते हैं)।

बेशक, यह तालिकाओं के बीच अंतर नहीं करेगा - आप तर्क दे सकते हैं कि यदि आपको इस स्तर की ग्रैन्युलरिटी की आवश्यकता है, तो आपको पहले जांच करनी चाहिए (एक क्रमबद्ध अलगाव स्तर में, आदर्श रूप से UPDLOCK के साथ), यदि विवादित डेटा हो तो अपनी स्वयं की त्रुटि उठाएं।

0
जोड़ा
कोई विचार जहां मैं अलग-अलग संख्याओं का संदर्भ ले सकता हूं?
जोड़ा लेखक Omar Kooheji, स्रोत

SQL सर्वर में आप विभिन्न त्रुटि फ़ंक्शंस का उपयोग कर सकते हैं जो sys.messages से मिली त्रुटियों के बारे में विभिन्न जानकारी देता है

आप BOL से अधिक जानकारी पुनर्प्राप्त कर सकते हैं।

0
जोड़ा

You can find the error codes here

0
जोड़ा
वे मुझे वही त्रुटि कोड नहीं लग रहे हैं जो मुझे मिल रहा है। हालांकि वे अलग-अलग त्रुटियों को कवर कर सकते हैं
जोड़ा लेखक Omar Kooheji, स्रोत
स्पष्ट रूप से उन त्रुटि कोड वे हैं जो सी # उपयोग करते हैं, सिवाय इसके कि वे नकारात्मक के बजाय सकारात्मक हैं।
जोड़ा लेखक Omar Kooheji, स्रोत