c# - A null value should be considered as 0 when addition of it is done with decimal value -


डेटारबल ए, बी और सी में तीन स्तंभ हैं अब प्रत्येक कॉलम में दशमलव का प्रकार है अब मैं कॉलम बी के रिकार्ड और कॉलम सी के रिकॉर्ड के अतिरिक्त बनाने के लिए dt.Column ["A"]। अभिव्यक्ति = "बी + सी" की तरह कर रहा हूं। अब यदि कोई B या C है null का कोई भी मान है तो बी और सी के अलावा बी की मान की तरह शून्य हो जाएगा और सी का मान null पहली पंक्ति के लिए B + C (3 + null) होगा null जो उपयुक्त नहीं है, इसके अतिरिक्त का परिणाम 3 होना चाहिए । अगर मैं 0 को नल के स्थान पर बदलता हूं तो यह ठीक हो जाएगा.लेकिन अभिलेखों में शून्य मूल्य होने पर भी यह वही रहना चाहिए और इसे प्रतिस्थापित नहीं किया जाना चाहिए 0 । यह शून्य मान नहीं होना चाहिए 0 द्वारा प्रतिस्थापित किया जाना चाहिए और जब भी शून्य मान को जोड़कर किसी भी दशमलव मान null < / कोड> मान को 0 के रूप में माना जाना चाहिए।

क्या यह संभव है, हम यह कैसे कर सकते हैं?

संपादित करें निम्न उत्तर देखें जहां dt.Rows [0] ["B" ] = DBNull.Value; लेकिन मुझे अपने कोड के अनुसार समस्या है, मैं DBNull.Value सीधे dt.Rows [0] ["B"] = DBNull निर्दिष्ट नहीं कर सकता .Value; मुझे इसे एक वैरिएबल प्रकार <कोड> वस्तु जैसे वस्तु obj; obj = DBNull.Value में संग्रहीत करना होगा और फिर यह मान तालिका में जाता है। तब यह त्रुटि देता है जैसे शून्य मान को स्तंभ बी में संग्रहीत नहीं किया जा सकता।

इस तरह से कुछ प्रयास करें

  dt.Column ["A"]। अभिव्यक्ति = "ISNULL (B, 0) + ISNULL (सी, 0)";  

पूर्ण कार्यरत परीक्षण:

<पूर्व> डेटाटाले डीटी = नया डेटाटाले (); Dt.Columns.Add ("ए", प्रकार (दशमलव)); Dt.Columns.Add ("बी", प्रकार (दशमलव)); Dt.Columns.Add ("सी", प्रकार (दशमलव)); dt.Rows.Add (); Dt.rows [0] ["बी"] = डीबीएनएलएल। वेल; Dt.Rows [0] ["सी"] = 3; Dt.Column ["A"]। अभिव्यक्ति = "ISNULL (बी, 0) + ISNULL (सी, 0)"; Console.WriteLine (dt.Rows [0] [ 'ए']);

Comments