Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

सी # में SQL सर्वर आउटपुट चर पुनर्प्राप्त करना

सबसे पहले - यदि यह एक OUTPUT पैरामीटर है, तो आप .AddWithValue का उपयोग नहीं कर सकते। C# में - आपको उपयोग करने की आवश्यकता है:

SqlParameter outParam = cmd.Parameters.Add("@guidid", SqlDbType.Uniqueidentifier);
outParam.Direction = ParameterDirection.Output;

और साथ ही, आपके टी-एसक्यूएल कोड में, आपको आउटपुट पैरामीटर के लिए नया मान निर्दिष्ट करने की आवश्यकता है!

ALTER PROCEDURE [dbo].[pr_Tbl_Test_Insert]
  @guidid uniqueidentifier output,
  @sname nvarchar(50)
AS

DECLARE @NewID UNIQUEIDENTIFIER
SET @NewID = newid();

-- INSERT a new row in the table.
INSERT [dbo].[Tbl_Test]([id], [name]) VALUES(@NewID, @sname);

SET @guidid = @NewID

अपडेट करें: यदि आप इसे अपने SQL सर्वर Mgmt Studio में चलाते हैं - क्या यह कुछ दिखाता है ??

DECLARE @insertedID UNIQUEIDENTIFIER

EXEC dbo.pr_Tbl_Test_Insert @guidid = @insertedID OUTPUT,
                            @sname = N'TestUser' -- nvarchar(50)

SELECT @insertedID

और आपके C# में - आपको पढ़ना ExecuteNonQuery calling को कॉल करने के बाद आउटपुट पैरामीटर का मान !

SqlParameter outparam = cmd.Parameters.Add("@guidid",SqlDbType.UniqueIdentifier);
outparam.Direction = ParameterDirection.Output;

cmd.Parameters.AddWithValue("@sname", "mehdi");

cmd.ExecuteNonQuery();

Guid newlyInsertedID = new Guid(cmd.Parameters["@guidid"].Value);
MessageBox.Show(newlyInsertedID.ToString());


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. गतिरोध पहेली:पीड़ित के पास कोई संसाधन नहीं है, जिसका उपयोग गतिरोध को हल करने के लिए किया जाता है

  2. WCF और सिंक फ्रेमवर्क का उपयोग करके HTTP पर SQL Server 2008 डेटाबेस को सिंक करना

  3. SQL सर्वर के आधुनिक संस्करण में अपग्रेड करने के लिए परफेक्ट स्टॉर्म

  4. SQL सर्वर 2019 संस्करण पर विचार

  5. SQL सर्वर में Null मान कितना आकार लेता है