>백엔드 개발 >C++ >C#의 저장 프로시저에서 출력 매개 변수를 검색하는 방법은 무엇입니까?

C#의 저장 프로시저에서 출력 매개 변수를 검색하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-10 08:05:42731검색

How to Retrieve Output Parameters from a Stored Procedure in C#?

C#의 저장 프로시저에서 출력 매개변수 검색

많은 데이터베이스 상호 작용에서는 저장 프로시저를 활용하여 데이터를 효율적으로 관리합니다. 일반적인 요구 사항은 특히 자동으로 생성된 기본 키를 처리할 때 출력 매개변수를 검색하는 것입니다. 이 예에서는 SQL Server 저장 프로시저로 작업할 때 C#에서 출력 매개 변수를 올바르게 처리하는 방법을 보여줍니다.

INSERT 작업 후 새로 생성된 기본 키를 캡처하려고 할 때 문제가 자주 발생합니다. 다음과 같은 수정된 저장 프로시저가 솔루션을 제공합니다.

<code class="language-sql">CREATE PROCEDURE usp_InsertContract
(
  @ContractNumber varchar(7),
  @NewId int OUTPUT
)
AS
BEGIN
  INSERT INTO [dbo].[Contracts] (ContractNumber)
  VALUES (@ContractNumber);

  SELECT @NewId = SCOPE_IDENTITY();
END;</code>

이 저장 프로시저는 계약 번호를 승인하고 @NewId을 사용하여 SCOPE_IDENTITY() 출력 매개변수를 통해 새로 생성된 ID를 반환합니다.

이 출력 매개변수를 검색하기 위해 업데이트된 C# 코드는 다음과 같습니다.

<code class="language-csharp">// Establish database connection and command object
using (SqlConnection conn = new SqlConnection(pvConnectionString))
using (SqlCommand cmd = new SqlCommand("dbo.usp_InsertContract", conn))
{
  cmd.CommandType = CommandType.StoredProcedure;

  // Define and add parameters
  cmd.Parameters.AddWithValue("@ContractNumber", contractNumber);
  cmd.Parameters.Add("@NewId", SqlDbType.Int).Direction = ParameterDirection.Output;

  // Open connection and execute the stored procedure
  conn.Open();
  cmd.ExecuteNonQuery();

  // Retrieve the output parameter value
  int contractID = Convert.ToInt32(cmd.Parameters["@NewId"].Value);
  conn.Close();
}</code>

이 C# 코드는 데이터베이스에 연결하고 저장 프로시저를 실행하며 @NewId 출력 매개변수를 효율적으로 검색하여 contractID 변수에 저장합니다. 이제 새로 생성된 기본 키를 애플리케이션 내에서 추가 처리에 사용할 수 있습니다.

위 내용은 C#의 저장 프로시저에서 출력 매개 변수를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.