मैं उपयोगकर्ता को यह बताना चाहता हूं कि एक रिकॉर्ड हटाया नहीं गया था क्योंकि इसमें बाल डेटा है, लेकिन मैं कैसे सुनिश्चित कर सकता हूं कि विदेशी कुंजी उल्लंघन के कारण अपवाद फेंक दिया गया था? मैं देखता हूं कि वहां एक स्क्लेक्सप्शन क्लास है जिसका उपयोग सभी एसक्यूएल अपवाद के लिए किया जाता है।विदेशी कुंजी उल्लंघन के कारण एक SQLexception फेंक दिया गया था, तो मुझे कैसे पता चलेगा?
17
A
उत्तर
39
मान लें कि आप SQL सर्वर का उपयोग कर रहे हैं।
तेह Googles का उपयोग करना - http://blogs.msdn.com/tomholl/archive/2007/08/01/mapping-sql-server-errors-to-net-exceptions-the-fun-way.aspx
try
{
# SQL Stuff
}
catch (SqlException ex)
{
if (ex.Errors.Count > 0) // Assume the interesting stuff is in the first error
{
switch (ex.Errors[0].Number)
{
case 547: // Foreign Key violation
throw new InvalidOperationException("Some helpful description", ex);
break;
case 2601: // Primary key violation
throw new DuplicateRecordException("Some other helpful description", ex);
break;
default:
throw new DataAccessException(ex);
}
}
}
प्रकरण 547 अपने आदमी है।
अद्यतन उपरोक्त नमूना कोड है और इसका उपयोग नहीं किया जाना चाहिए। व्याख्या करने के लिए कृपया लिंक का पालन करें क्यों।
-2
तुम कोशिश ब्लॉक में अपने अपवाद-उम्मीद कोड यदि कोई अपवाद फेंक दिया जाएगा यह पकड़ आगे अब हो जाएगा प्राप्त होने वाले त्रुटि number.now जांच कर सकते हैं कि यह एक विदेशी कुंजी उल्लंघन या नहीं
है सकते हैं लिख सकते हैंtry
{
//your deletetion code
}catch (SqlException ex)
{
if (ex.Errors.Count > 0) // Assume the interesting stuff is in the first error
{
switch (ex.Errors[0].Number)
{
case 547: // Foreign Key violation
lblError.Text = "Cannot Delete this Record this is associated with other record...!";
break;
default:
throw;
}
}
}
+1
कृपया अन्य उत्तरों दोहराना न करें –
संबंधित मुद्दे
- 1. मुझे कैसे पता चलेगा कि एनएसविंडो बंद बटन का उपयोग कर बंद कर दिया गया था?
- 2. मुझे कैसे पता चलेगा कि मेरा संदेश वसंत amqp के साथ सफलतापूर्वक भेजा गया था?
- 3. मुझे कैसे पता चलेगा कि एक संपादन योग्य JComboBox का पाठ बदल दिया गया है?
- 4. पोस्टग्रेस्क्ल में विदेशी कुंजी का उल्लंघन ट्रिगर
- 5. मुझे कैसे पता चलेगा कि ब्राउज़र के अंदर जावास्क्रिप्ट बंद कर दिया गया है या नहीं?
- 6. आईओएस पता पुस्तिका - कैसे पता चलेगा कि कौन सा संपर्क जोड़ा गया/संपादित/हटाया गया था?
- 7. मुझे कैसे पता चलेगा कि
- 8. WPF मुझे कैसे पता चलेगा कि कौन सा ListBox आइटम क्लिक किया गया था
- 9. मुझे कैसे पता चलेगा कि बंडल में कौन सा डेटा दिया गया है?
- 10. मुझे कैसे पता चलेगा कि डब्ल्यूपीएफ
- 11. वास्तविक समस्या को कैसे जानें, जिसके कारण एसक्लएक्सप्शन फेंक दिया गया है?
- 12. यदि IOException फेंक दिया गया है तो मुझे क्या करना चाहिए?
- 13. मुझे कैसे पता चलेगा कि विंडोज सीई
- 14. कैसे संग्रहीत प्रक्रिया में SQLException फेंक
- 15. मुझे कैसे पता चलेगा कि Google विज़ुअलाइज़ेशन
- 16. यदि ऑब्जेक्ट लॉक हो गया है तो मुझे कैसे पता चलेगा? सी #
- 17. इकाई फ्रेमवर्क एक से कई प्रविष्टियां - विदेशी कुंजी उल्लंघन
- 18. GAE में ConcurrentModificationException फेंक दिया गया है?
- 19. System.Net.WebException: अनुरोध निरस्त कर दिया गया था: अनुरोध रद्द कर दिया गया था
- 20. जावा में वैश्विक रूप से एक अपवाद को कब फेंक दिया गया है, तो मैं कैसे पता लगा सकता हूं?
- 21. मुझे कैसे पता चलेगा कि पेपैल साइट
- 22. कैसे पता चलेगा कि एक वेब पेज आखिरी बार कब अपडेट किया गया था?
- 23. स्कैला MouseEvent - कैसे पता चलेगा कि कौन सा बटन दबाया गया था?
- 24. मुझे कैसे पता चलेगा कि ScalaQuery
- 25. यह पता लगाने के लिए कि क्या DOMContentLoaded को निकाल दिया गया था
- 26. मुझे कैसे पता चलेगा कि UIPageViewController आगे फिसल गया या उलट गया?
- 27. क्या लाइन नंबर प्राप्त करने का कोई तरीका है जहां एक अपवाद फेंक दिया गया था?
- 28. जावा में अंकगणित अपवाद फेंक दिया गया
- 29. पंक्तियों एक विदेशी कुंजी
- 30. MySQL - कैसे विदेशी कुंजी
यदि आप लिंक का पालन करते हैं, और नीचे पढ़ते हैं, तो आप देखेंगे कि उपर्युक्त कोड को उदाहरण के रूप में दिया गया है कि यह * नहीं * कैसे करें ... – bornfromanegg
बिल्कुल सही - मेरा उद्देश्य केवल यह कोड होना था त्रुटि पकड़ने का एक विस्तारित संस्करण दिखाने के लिए। मुझे लगता है कि मुझे नोटिस नहीं देना चाहिए (क्योंकि यह अन्य पेज के साथ मुद्दा है)। – aronchick