>백엔드 개발 >C++ >C#에서 저장 프로시저 반환 값을 검색하는 방법은 무엇입니까?

C#에서 저장 프로시저 반환 값을 검색하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-20 01:32:08754검색

How to Retrieve Stored Procedure Return Values in C#?

C#에서 저장 프로시저 반환 값 검색

C#에서 값을 반환하는 저장 프로시저를 호출할 때 코드에서 반환 값을 올바르게 처리하는 것이 중요합니다. 이 문서에서는 이 문제를 설명하고 저장 프로시저에서 반환 값을 성공적으로 검색하기 위한 솔루션을 제공합니다.

문제 설명

C# 애플리케이션은 시퀀스의 다음 값을 반환하는 저장 프로시저를 호출해야 합니다. 온라인 솔루션을 따랐음에도 불구하고 여전히 반환 값을 검색할 수 없습니다. 제공된 코드 조각에는 SqlCommand 개체 만들기, 저장 프로시저를 명령 텍스트로 지정, SqlConnection을 사용하여 명령 실행이 포함됩니다. 그러나 저장 프로시저의 반환 값은 검색되지 않습니다.

매장 절차 코드

<code class="language-sql">ALTER procedure [dbo].[usp_GetNewSeqVal]
      @SeqName nvarchar(255)
as
begin
      declare @NewSeqVal int
      set NOCOUNT ON
      update AllSequences
      set @NewSeqVal = CurrVal = CurrVal+Incr
      where SeqName = @SeqName

      if @@rowcount = 0 begin
print 'Sequence does not exist'
            return
      end

      return @NewSeqVal
end</code>

저장 프로시저를 호출하는 C# 코드

<code class="language-csharp">SqlConnection conn = new SqlConnection(getConnectionString());
conn.Open();

SqlCommand cmd = new SqlCommand(parameterStatement.getQuery(), conn);
cmd.CommandType = CommandType.StoredProcedure;

SqlParameter param = new SqlParameter();

param = cmd.Parameters.Add("@SeqName", SqlDbType.NVarChar);
param.Direction = ParameterDirection.Input;
param.Value = "SeqName";

SqlDataReader reader = cmd.ExecuteReader();</code>

솔루션

저장 프로시저의 반환 값을 얻으려면 ReturnValue 방향이 있는 매개 변수를 SqlCommand 개체에 추가해야 합니다. 이는 변수를 선언하고 저장 프로시저의 반환 값을 변수에 할당하도록 명령에 지시합니다. 다음 코드는 솔루션을 보여줍니다.

<code class="language-csharp">using (SqlConnection conn = new SqlConnection(getConnectionString()))
using (SqlCommand cmd = conn.CreateCommand())
{
    cmd.CommandText = parameterStatement.getQuery();
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("SeqName", "SeqNameValue");

    // @ReturnVal 可以是任何名称
    var returnParameter = cmd.Parameters.Add("@ReturnVal", SqlDbType.Int);
    returnParameter.Direction = ParameterDirection.ReturnValue;

    conn.Open();
    cmd.ExecuteNonQuery();
    var result = returnParameter.Value;
}</code>

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

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