के साथ सी # सीएलआर संग्रहीत प्रक्रिया के लिए एक वैकल्पिक पैरामीटर के रूप में एक शून्य पैरामीटर घोषित करने के लिए कैसे करें मैं एक सी # संग्रहीत प्रक्रिया लिख रहा हूं जो SQL Server 2008 R2 (इसलिए .NET 3.5) पर तैनात है और वैकल्पिक घोषित करना चाहता है एक नालीदार गाइड के रूप में पैरामीटर। यहाँ क्या मैं पहली बार कोशिश की है:SQL सर्वर
यह संकलन समय त्रुटि के साथ विफल:
Default parameter value for 'sID' must be a compile-time constant
जो है, क्योंकि DBNull.Value
जो एक दर्द है एक स्थिर नहीं है,।
[Microsoft.SqlServer.Server.SqlProcedure]
public static void spCalcPerc(
SqlGuid pID
, Guid? sID = null
)
यह संकलित लेकिन अब मैं इस तैनाती त्रुटि मिलती है:
Deploy error : Could not create a type for parameter System.Nullable
कोशिश कर रहा है:
, SqlGuid sID = null
इस संकलन समय त्रुटि देता है
तो मैं करने के लिए घोषणा को बदलने की कोशिश की :
A value of type '< null >' cannot be used as a default parameter because there are no standard conversions to type 'System.Data.SqlTypes.SqlGuid'
तो बल्कि अटक महसूस कर मैं इस का सहारा लिया:
, SqlGuid sID = "00000000-0000-0000-0000-000000000000"
कौन सा मैं कोड में कि स्ट्रिंग के लिए परीक्षण के रूप में करने के लिए नहीं करना चाहता था एक kludge तरह लगता है। हालांकि वह काम नहीं करता है या तो मैं इस संकलन त्रुटि मिलती है के रूप में:
A value of type 'string' cannot be used as a default parameter because there are no standard conversions to type 'System.Guid'
गाह, 4 अलग दृष्टिकोण और कोई भी उन्हें काम करते हैं। श्वास
कृपया अपने विचारों या सही दिशा में धक्का की सराहना करेंगे।
क्या आपने बस "गुड? एसआईडी" की कोशिश की है, बिना = शून्य? – H27studio