c# - Exception: Specified cast is not valid -
सार्वजनिक वर्ग UserLoginInfo {सार्वजनिक UserRole भूमिका; सार्वजनिक स्ट्रिंग उपयोगकर्ता नाम; सार्वजनिक [उपयोगकर्ता] उपयोगकर्ता [उपयोगकर्ता नाम], [पासवर्ड] [भूमिका] से [उपयोगकर्ता] का प्रयोग करते हुए (यूआरएल, यूआरएल, यूआरएल, यूआरएल, WHERE [उपयोगकर्ता नाम] = @ उपयोगकर्ता नाम ", कनेक्शन)) {command.Parameters.AddWithValue (" @ उपयोगकर्ता नाम ", उपयोगकर्ता नाम); (Var reader = command.ExecuteReader ()) {if (reader == null ||! Reader.Read () ||! यूटिल। हैश। चेकपॉज़वर्ड (उपयोगकर्ता नाम, पासवर्ड, (बाइट []) पाठक ["पासवर्ड"] )) नए अपवाद फेंक ("गलत उपयोगकर्ता नाम या पासवर्ड।"); नया यूज़रलागिनइन्फो {उपयोगकर्ता नाम = (स्ट्रिंग) रीडर ["उपयोगकर्ता नाम"], रोल = (यूज़ररोल) रीडर ["रोल"]} लौटाएं;
जब मैं एक ब्रेकपॉइंट डालता हूं और डीबग करता हूं, तो इस लाइन से त्रुटि आती है
नया यूज़रलागिनइन्फो वापस आ गया है (उपयोगकर्ता नाम = (स्ट्रिंग) रीडर [" उपयोगकर्ता नाम "], भूमिका = (यूज़ररोल) रीडर [" रोल "]};
मुझे समझ में नहीं आ रहा है कि मुझे यह त्रुटि क्यों मिलती है कृपया मेरी मदद करो!
संपादित करें: मैं UserRole के लिए (स्ट्रिंग) रीडर ["भूमिका"] को कैसे रूपांतरित कर सकता हूं ??
सार्वजनिक enum UserRole {Admin, Maintance, User}
भूमिका = (UserRole) रीडर ["भूमिका"] संभवत: UserRole
एक प्रकार है जिसे आपने परिभाषित किया है, इसलिए SqlDataReader
नहीं जानता है कि डेटा को इस प्रकार से डाटा कैसे बदल सकता है । आपके डेटाबेस में इस कॉलम का प्रकार क्या है?
संपादित करें: आपके अपडेट किए गए प्रश्न के लिए आप ऐसा कर सकते हैं:
var role = (स्ट्रिंग) रीडर ["भूमिका" ]; UserRole भूमिका = (UserRole) Enum.Parse (typeof (UserRole), भूमिका);
आप कुछ अतिरिक्त त्रुटि जांच में जोड़ना चाह सकते हैं, जैसे कि भूमिका
की नकल नहीं है साथ ही, मान को पार्स करने से पहले आप जांच सकते हैं कि क्या पार्स मान्य है।
Comments
Post a Comment