मेरा मानना है कि डेटा सेल बीइंग नल आपकी समस्या का कारण नहीं हो सकता है। शायद कॉलम मौजूद नहीं है, या कोई अन्य त्रुटि हुई है, या DataRow स्वयं शून्य है और आपको इसे संभालना चाहिए। अपवाद को देखें - "उड़ा लगता है" आपकी समस्या का एक वैध वर्णन नहीं है।
निम्नलिखित बताते हैं, लेकिन सभी के लिए शीर्षक से प्रश्न का उत्तर भी देंगे।
तो स्तंभ मान शून्य है, एक वस्तु System.DBNull
दिया जाता है, और .ToString()
कोई रिक्त स्ट्रिंग देता है, जबकि (string)
या as string
वापसी null
।
इसलिए ==null
के लिए लौटाए गए आइटम को चेक करने का कोई मतलब नहीं है क्योंकि यह कभी भी true
का मूल्यांकन नहीं करेगा।
- आप परिणाम के रूप में रिक्त स्ट्रिंग स्वीकार करते हैं, अपने कोड पहले से ही इष्टतम है,
DBNull
मामले को संभालने के लिए कोई जरूरत नहीं।
- यदि आप
null
प्राप्त करना चाहते हैं, तो .ToString()
से as string
पर बदलें।
- यदि आप इसे किसी अन्य तरीके से संभालना चाहते हैं, तो
if (dr.IsNull("FirstName"))
का उपयोग करें या as string
के बाद लक्ष्य चर पर ==null
करें।
स्रोत
2014-09-12 08:18:15
स्ट्रिंग डिफ़ॉल्ट रूप से "शून्य" हैं, क्योंकि वे संदर्भ प्रकार हैं। –
मैं कॉलम के बारे में बात कर रहा था, स्ट्रिंग प्रकार नहीं। –