मेरे पास काम और कोड पर एक नया लैपटॉप है जो सप्ताह में पहले काम करता था आज काम नहीं करता है।सी # पार्स स्ट्रिंग "0" पूर्णांक
कोड कि पहले काम किया, सरलीकृत:
while (dr.Read())
{
int i = int.Parse(dr.GetString(1))
}
अब यह विफल रहता है जब डेटाबेस मूल्य 0. कभी कभी होता है, लेकिन नहीं मज़बूती से, इस के बजाय काम करेगा:
while (dr.Read())
{
int i = Convert.ToInt32(dr["FieldName"]))
}
एम आई बेवकूफ कुछ याद आ रही है?
विचित्र रूप से पर्याप्त, ReSharper में एक ही त्रुटि संदेश के साथ कई अजीब त्रुटियां भी हैं जो मुझे उपरोक्त कोड के साथ मिल रही है: "इनपुट स्ट्रिंग सही प्रारूप में नहीं थी।" (इससे पहले कि मैं एक परियोजना भी लोड करता हूं।)
कोई विचार? कोई भी एसपी मुद्दे है? मैंने यह सुनिश्चित करने का प्रयास किया कि जब मेरे पास मशीन मिल जाए तो मेरे सभी एसपी अद्यतित थे।
संपादित करें: मैं समझता हूं कि Try.Parse और त्रुटि-प्रबंधन का उपयोग कैसे करें। यहां कोड सरल है। मैं डेटाबेस तालिका से टेस्ट केस पढ़ रहा हूं। इस कॉलम में केवल 0, 1, और 2 मान हैं। मैंने पुष्टि की है। मैंने इसे डेटाबेस फ़ील्ड को एक स्ट्रिंग वेरिएबल में डालने और फिर int.Parse (ओं) को आजमाने की कोशिश की। कोड इस सप्ताह के शुरू में काम करता था और डेटाबेस नहीं बदला है। एकमात्र चीज जो बदल गई है वह मेरा पर्यावरण है।
पूरी तरह से समस्या को आसान बनाने के लिए, कोड की इस पंक्ति एक अपवाद ("इनपुट स्ट्रिंग सही स्वरूप में नहीं था") फेंकता है:
int.Parse("0");
संपादित करें: मुझे इस समस्या को हल मदद करने के लिए हर किसी के लिए धन्यवाद! समाधान मेरी भाषा सेटिंग्स के रीसेट को मजबूर कर रहा था।
तालिका कॉलम क्या डेटाटाइप है? –
क्या फ़ील्ड शून्य मान की अनुमति देता है? –
यदि आप कस्टम निष्पादन कोड की एकमात्र पंक्ति int.Parse ("0") के साथ एक नया अनुप्रयोग बनाते हैं; और यह एक त्रुटि फेंक रहा है, तो मुझे लगता है कि आपको एक बड़ी समस्या हो सकती है। –