c# - Stored procedure returning value in sql server but not in asp.net -


मेरे पास एक संग्रहीत कार्यविधि है जो किसी पैरामीटर प्रदान किए बिना मूल्य (letterNo) लौटाता है, यह कार्य करता है, लेकिन समान प्रक्रिया एएसपी में गलत मान देती है शुद्ध कोड अर्थात् यह केवल 0 देता है, लेकिन सपा में 1, 2 आदि जैसे अपेक्षित मूल्यों को रिटर्न मिलता है।

क्यों?

सपा:

  ALTER प्रक्रिया [dbo]। [SelectLetterNoFromComposedLetter] @LetterNo bigint उत्पादन के रूप में @date varchar घोषित (5) सेट @date = (परिवर्तित का चयन करें (vARCHAR (5), getdate (), 110)) शुरू घोषित @MaxComposeLetterID bigInt सेट @MaxComposeLetterID = ( मैक्स ComposedLetter से (ComposedLetterID)) सेट करें चुनें @ LetterNo = (सबस्ट्रिंग का चयन करें (ComposedLetter.LetterNo, 15,20) ComposedLetter से जहां ComposedLetterID = @MaxComposeLetterID) यदि (@date! = '01-01') --Check अगर यह पहले है नए साल का दिन या नहीं शुरू करें @ लेटर नो + 1 को पत्र के रूप में चुनें - यदि ऐसा नहीं है तो यह मौजूदा लार्टोर्नो +1 देता है; पुरानी मूल्य बढ़ाना यदि अंतराल (@ दिनांक = '01 -01 ') - यदि वर्तमान दिनांक 1 जनवरी से पहले तो यह जांचता है कि क्या कोई अन्य प्रविष्टि बनाई गई है या नहीं, अगर मौजूदा मान + 1 को शुरू किया जाता है तो यदि (@ लेटर नो & gt; 0) --if तो बनाया मौजूदा मूल्य +1 शुरू करें @LetterNo + 1 समाप्ति वरना शुरू सेट @LetterNo = 1 - और अगर कोई नया रिकार्ड 1 जनवरी को सम्मिलित किया गया है तो लौट आरंभिक मूल्य यानी 1 का चयन @LetterNo समाप्ति सिरे से दूसरे सिरे   

.cs: (! IsPostBack) // Page_Load घटना के अंदर संलग्न

  यदि {ManageComposedLetter mngCompLetters = नए ManageComposedLetter (); Int64 Letter_No = mngCompLetters.SelectLetterNoFromComposedLetter (); TxtLetterNo.Text = "PPO-CC /" + दिनांक समय.अब। साल + "/" + दिनांक समय.अब। मौन + "/" + पत्र_नहीं; }   

व्यापार लेयर कोड:

  सार्वजनिक Int64 SelectLetterNoFromComposedLetter () {SqlCommand cmd = नए SqlCommand ( "SelectLetterNoFromComposedLetter", DataBaseConnection.OpenConnection ()); Cmd.CommandType = CommandType.StoredProcedure; SqlParameter pLetterNo = नया SqlParameter ("@ लेटर नो", SqlDbType.BigInt); cmd.Parameters.Add (pLetterNo); PLetterNo.Direction = पैरामीटर डायरेक्शन.ऑप्टपुट; cmd.ExecuteNonQuery (); Int64 परिणाम = कन्वर्ट.ToInt64 (pLetterNo.Value); वापसी परिणाम; }    

संग्रहित प्रक्रिया कई परिणामों को रिटर्न देती है। <पूर्व> LetterNo के रूप में @ लिटर नं + 1 का चयन करें - यदि ऐसा नहीं है तो यह मौजूदा letterno + 1 देता है; पुरानी मूल्य बढ़ाना ... चुनें @ लेटर + 1 ... चुनें @ लेटर नो

आपको या तो उन्हें बदलना चाहिए

  @LetterNo + = 1 का चयन करें पत्र के रूप में - यदि नहीं तो यह मौजूदा letterno + 1 देता है; पुरानी मूल्य बढ़ाना ... चुनें @ लेटर + = 1 ... @ लेटर नो = @ लेटर नो <  

चुनें या SET- ऑपरेटर का उपयोग करें

  SET @ LetterNo = @LetterNo +1 ... सेट @LetterNo = @LetterNo +1 ... SET @LetterNo = @LetterNo   

पिछले असाइनमेंट कोई मतलब नहीं है (@LetterNo = @LetterNo) लेकिन यह आपके कोड से लिया गया है।

Comments

Popular posts from this blog

ios - Adding an SKSpriteNode to SKScene from a child SKSpriteNode -

Matlab transpose a table vector -

c# - Textbox not clickable but editable -