2011-12-25 14 views
15

का एक अवैध आकार है, मैं एक सोशल नेटवर्क पर काम कर रहा हूं, मेरी प्रक्रियाओं में से एक VARCHAR आउटपुट देता है।आकार संपत्ति का 0

SqlParameter job1 = cmd2.Parameters.Add("@job", SqlDbType.VarChar); 
job1.Direction = ParameterDirection.Output; 

हालांकि इस त्रुटि ऊपर आता है:

स्ट्रिंग [1]: आकार संपत्ति का 0.

+1

+1 स्नैप - बिल्कुल वही अपवाद! – whytheq

उत्तर

32

आप की जरूरत है गलत आकार की है तो यह है कि मैं क्या लिखा है varchar पैरामीटर निर्दिष्ट करते समय को परिभाषित करें:

आपको अपनी SQL सर्वर संग्रहीत प्रक्रिया में परिभाषित समान लंबाई का उपयोग करना चाहिए।

और btw: यदि आपके संग्रहीत प्रक्रिया भी कोई लंबाई परिभाषित (@job VARCHAR OUTPUT की तरह कुछ) है - तो आप 1 चरित्र लंबाई के एक varchar स्ट्रिंग परिभाषित किया है ......

+0

आपको बहुत धन्यवाद, यह काम किया :) – RuMoR

+1

+1 (अभी तक मेरा सबसे लंबा प्रश्न आज तक बनाया गया था और फिर इस क्यूए पर रीडायरेक्ट किया गया था!) – whytheq

0

हाँ, परिभाषित करने के लिए है varchar/nvarchar डेटा प्रकार के लिए लंबाई नीचे की तरह।

cmd.Parameters.Add("@Description", SqlDbType.VarChar, 150).Direction = 
    ParameterDirection.Output; 
संबंधित मुद्दे