C#에서 저장 프로시저 출력 매개변수 사용
저장 프로시저에서 데이터를 검색할 때 추가 정보를 얻기 위해 출력 매개변수에 액세스해야 하는 경우가 많습니다. 이 예제에서 C# 프로그램은 usp_InsertContract 저장 프로시저에서 반환된 기본 키를 검색하는 동안 문제가 발생합니다.
다음과 같이 SCOPE_IDENTITY()를 사용하도록 저장 프로시저가 약간 수정되었습니다.
<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>
C# 코드도 출력 값을 올바르게 검색하도록 조정되었습니다.
<code class="language-csharp">// 打开连接并执行存储过程 conn.Open(); cmd.ExecuteNonQuery(); // 从@NewId读取输出值 int contractID = Convert.ToInt32(cmd.Parameters["@NewId"].Value); conn.Close();</code>
이 수정을 통해 기본 키가 출력 매개변수로 올바르게 반환되고 C# 프로그램에서 액세스할 수 있도록 하여 문제를 해결해야 합니다.
참고: Contracts 테이블에 IDENTITY 속성이 올바르게 구성된 열이 있는지 확인하십시오. IDENTITY 열이 누락되면 기본 키 값을 얻기 어려울 수도 있습니다.
위 내용은 C#의 저장 프로시저 출력 매개변수에서 기본 키를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!