2011-03-18 21 views
22

मैं कुछ इस तरह कर रहा था काम नहीं करता है किसी को भी मुझे बता सकते हैं क्यों SqlParameter मान लिया गया 0 अशक्त रूप में ही है?SqlParameter के रूप में की उम्मीद

संपादित करें: MSDN इस यहाँ की व्याख्या करता है: SqlParameter Constructor

+4

ठीक है, यह यहां समझाया गया है: http://msdn.microsoft.com/en-us/library/0881fz2y%28v=VS.80%29.aspx डिफ़ॉल्ट मान "0" के साथ एक नया SqlParameter बनाते समय, आप पूर्णांक के लिए स्पष्ट रूप से इसे कास्ट करने के लिए की जरूरत है। अन्यथा यह आप दूसरा पैरामीटर के रूप में एक SqlDbType enum गुजर रहे हैं मान लिया गया है। – Meryovi

उत्तर

38

उपयोग सावधानी जब आप को SqlParameter निर्माता के इस अधिभार का उपयोग पूर्णांक पैरामीटर मान निर्दिष्ट करें। क्योंकि यह अधिभार प्रकार ऑब्जेक्ट का मान लेता है, तो आपको एक ऑब्जेक्ट प्रकार में अभिन्न मान को परिवर्तित करना होगा जब मान शून्य है, क्योंकि निम्न C# उदाहरण दर्शाता है।

Parameter = new SqlParameter("@pname", Convert.ToInt32(0)); 

आप इस रूपांतरण प्रदर्शन नहीं करते हैं, तो संकलक मानता है कि आप SqlParameter (स्ट्रिंग, SqlDbType) निर्माता अधिभार कॉल करने का प्रयास कर रहे हैं।

धन्यवाद Msdn :)

5

0 आप में से गुजर रहे हैं प्रकार, नहीं मूल्य है। अंतर्निहित enum प्रकार के 0 अर्थ है, और कर रहे हैं वस्तु तुलना में एक बेहतर "मैच" के बाद से यह मुक्केबाजी की जरूरत नहीं है - 0 शाब्दिक (और निरंतर मान) किसी भी enum प्रकार के लिए अनुमति दी जाती है।

व्यक्तिगत रूप से, मैं प्रयोग करेंगे;

Value = 0 

शायद ऑब्जेक्ट प्रारंभकर्ता में।

संबंधित मुद्दे