2011-11-15 22 views
5

में माइस्क्ल त्रुटियों को पकड़ा गया है, जब मैं एक माइस्क्ल अपवाद सी # में फेंक दिया जाता है तो मैं उपयोगकर्ता के अनुकूल त्रुटि संदेश को वापस करने की कोशिश कर रहा हूं। मैं वर्तमान में अपवाद संदेश लौट रहा हूं लेकिन यह संदेश बहुत उपयोगकर्ता के अनुकूल नहीं है। इसलिए मैं अगर आप में से किसी एक के लिए किसी भी चाल है कि त्रुटि संदेश उन्हें एक तरीके से उपयोगकर्ता है कि उन्हें करने के लिए कोई मतलब होगा प्रदर्शित करने के लिए प्राप्त की किसी भी फैंसी regex पार्स की आवश्यकता नहीं है था सोच रहा था।सी # उपयोगकर्ता के अनुकूल

मैं रिकॉर्ड को सम्मिलित/अद्यतन/हटाने से पहले जटिल सत्यापन कोड से दूर रहने की कोशिश कर रहा हूं लेकिन यह एकमात्र तरीका प्रतीत होता है ... जब तक कि आप बेहतर नहीं जानते!

+2

प्रत्येक mysql त्रुटि में एक त्रुटि कोड है: http://dev.mysql.com/doc/refman/5.5/en/error-messages-server.html आप उन लोगों के लिए अपना स्वयं का त्रुटि संदेश लिख सकते हैं। –

+0

हे मार्क, यह एक अच्छा विचार प्रतीत होता है लेकिन अपवाद ऑब्जेक्ट में कौन सी विधि से मुझे यह कोड मिल सकता है? मैं केवल MySql.Data अपवाद और त्रुटि कोड – Stainedart

उत्तर

6

Marc B के रूप में कहा कि हर Mysql त्रुटि ताकि आप एक MySqlException इस तरह एक try ... catch ब्लॉक का उपयोग पकड़ कर सकते हैं, एक त्रुटि कोड है सकता है:

try 
{ 

} 
catch (MySqlException ex) 
{ 
    int errorcode = ex.Number; 
} 

तो आप प्रत्येक त्रुटि कोड के लिए त्रुटि संदेश प्रदान करने के लिए केस स्टेटमेंट लिख सकते हैं, यहां server error codes and messages की एक सूची है।

+0

हां मैंने पाया कि मेरी मुख्य समस्या यह थी कि मैं अपवाद पकड़ रहा था, विशिष्ट विशिष्ट MySQLException नहीं, इसलिए मुझे संख्या विशेषता तक पहुंच नहीं थी। बहुत बहुत धन्यवाद। – Stainedart

+0

वास्तव में @ मार्क बी के लिए धन्यवाद। –

1

आप विशिष्ट एसक्यूएल त्रुटि संदेश को पकड़ने की कोशिश और प्रदर्शित यह

Try 

Catch ex as SqlException 
'''sql specific error message 
''ie: 
response.write("oops! error message: " & ex.message) 
Catch ex as Exception 
'''any other runtime error messages 
End Try 
+0

हाय कार्लोस बिना डाटाबेस से संदेश मिल रहा हो रहे हैं, इस मैं वर्तमान में क्या कर रहा हूँ है, लेकिन प्रविष्टि पर एक नकली चाबी नहीं संदेश आसानी से हर किसी को मैं कोशिश कर रहा हूँ से समझा जा सकता है उन त्रुटि पर एक उपयोगकर्ता के अनुकूल संदेश निर्माण की तरह "दर्ज किया गया मान पहले से ही सिस्टम में मौजूद है" – Stainedart

+0

दुर्भाग्य से शब्दों आपके औसत जो समझ जाएगा में त्रुटि संदेश के अनुवाद का कोई रास्ता नहीं है। मैंने अतीत में जो किया है वह एक संसाधन फ़ाइल का उपयोग करता है और एक कॉलम में .Net अपवाद संदेश डालता है और उसके बाद दूसरे कॉलम में एंडुसर अनुवाद होता है। बहुत थकाऊ, लेकिन उस परियोजना के लिए मुझे एक आवश्यकता थी कि उपयोगकर्ता द्वारा त्रुटि को समझना आसान हो। अपवादों को प्रोग्रामरों के लिए प्रोग्रामेटिक रूप से संभालने के लिए वास्तव में डिज़ाइन किया गया है (त्रुटियों को अधिक अनुकूल ढंग से संभालने के लिए प्रोग्राम को उपयोगकर्ता में संदेश, त्रुटि लॉग इन करें, इत्यादि का अनुवाद करें)। – Losbear

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