यह पूरी तरह स्पष्ट है कि तुम क्या इसका मतलब यह नहीं है जैसे त्रुटि देता है। यदि आप SQL पैरामीटर में शून्य मान को पारित करने का प्रयास कर रहे हैं, तो आपको DBNull.Value
का उपयोग अपने SqlParameter
(या जो भी प्रकार आप उपयोग कर रहे हैं) के मान के रूप में करना चाहिए। यदि आप सी # में एक शून्य पूर्णांक का प्रतिनिधित्व करना चाहते हैं, तो int?
(या Nullable<int>
का उपयोग करें - वे एक ही चीज़ हैं)।
आप एक सामान्य गैर-शून्य मूल्य प्रकार चर में एक शून्य मान को स्टोर नहीं कर सकते हैं। निरर्थक मान प्रकार अभी भी structs हैं, लेकिन वे गैर-शून्य प्रकार को लपेटते हैं और यह इंगित करने के लिए एक बूलियन मान जोड़ते हैं कि यह "असली" मान या शून्य है या नहीं। सी # इसके चारों ओर वाक्यात्मक चीनी कहते हैं, आप कार्य, विभिन्न रूपांतरण, उठा लिया ऑपरेटरों आदि के लिए null
शाब्दिक उपयोग करने की अनुमति:
int? value = 5;
value = null;
if (value == null)
{
...
}
अगर वह मदद नहीं करता है, हमें वास्तव में आपको क्या कोशिश कर रहे हैं के बारे में अधिक जानकारी दें करने के लिए।
संपादित करें: ठीक है, तो ऐसा लगता है कि StockBO.Client_id
short?
प्रकार का होना चाहिए - लेकिन तब DBNull.Value
सीधे सेट करने की अनुमति नहीं देगा। क्लाइंट आईडी को शून्य मान पर सेट करने के लिए आपको null
का उपयोग करना चाहिए। जब भी आप ऑब्जेक्ट्स और एसक्यूएल पैरामीटर और परिणामों के बीच अनुवाद करते हैं, तो आपको खुद को उस प्रकार का रूपांतरण करने की आवश्यकता होगी - अगर आप इसे नियमित रूप से कर पाते हैं, तो यह आपके लिए आसान बनाने के लिए कुछ सहायक तरीकों का काम करें।
बेशक, यदि आप LINQ से SQL या किसी भी चीज का उपयोग करना शुरू करते हैं, तो आपको DBNull.Value
के बारे में चिंता करने की आवश्यकता नहीं है - LINQ प्रदाता सीधे शून्य मूल्य प्रकारों का समर्थन करते हैं।
स्रोत
2010-07-15 05:57:33
मुझे पोस्ट देखने पर बहुत गर्व है ..धन्यवाद माँ मैंने अपना प्रश्न अपडेट किया है कृपया इसे जांचें – TinTin
@Ayyappan: मैंने अपना जवाब संपादित कर लिया है। –
धन्यवाद श्री जोन स्कीट – TinTin