मैं एक संग्रहित प्रो कॉल करने के लिए एक सी # दिनचर्या लिख रहा हूं। पैरामीटर सूची में मैं गुजर रहा हूं, यह संभव है कि मूल्यों में से एक कानूनी रूप से शून्य हो। तो मैंने सोचा कि मैं इस तरह की एक पंक्ति का उपयोग करेंगे:क्या सी # में स्ट्रिंग और डीबीएनएल को जोड़ना संभव है?
cmd.Parameters.Add(new SqlParameter("@theParam", theParam ?? DBNull.Value));
दुर्भाग्य से, यह निम्नलिखित त्रुटि देता है:
CS0019: Operator '??' cannot be applied to operands of type 'string' and 'System.DBNull'
अब, यह काफी स्पष्ट लगता है, लेकिन मैं तर्क के पीछे समझ में नहीं आता यह। यह क्यों काम नहीं करेगा? (और अक्सर, जब मैं क्यों कुछ काम नहीं कर रहा समझ में नहीं आता, ऐसा नहीं है कि यह नहीं कर सकते हैं काम ... यह है कि मैं गलत कर रहा हूँ। है)
मैं वास्तव में फैलाने के लिए है यह लंबे समय में अगर कथन में बाहर हो गया?
संपादित करें:।। (एक अलग रूप में, बस का उपयोग करने के "शून्य" के रूप में, यह काम नहीं करता सुझाव उन लोगों के लिए के रूप में मैं मूल रूप से सोचा अशक्त DBNull में भी स्वतः अनुवादित होगा, लेकिन यह जाहिरा तौर पर नहीं करता है (कौन जानता था?))
जानकारी के लिए, कमांड एक CommandBuilder द्वारा बनाई गई एक सेट है आपके लिए बनाए गए पैरामीटर का। हालांकि, एक ही समस्या उत्पन्न होती है कि आप जेनरेटेड पैरामीटर चयन में पैरामीटर में से किसी एक को नल पास करने की उम्मीद नहीं कर सकते हैं। आपको अभी भी ऊपर वर्णित अनुसार करना है। – rohancragg
अच्छा सरल समाधान :-) – IrishChieftain
आप इसे करने के लिए एक एक्सटेंशन विधि भी बना सकते हैं। –