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>
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!