C \ # 저장 프로시저 호출 OUTPUT 매개 변수 와 Return 반환 값
5050 단어 return
저장 프로 세 스 는 데이터베이스 서버 에 저 장 된 사전 컴 파일 된 sql 구문 입 니 다.저장 프로 세 스 를 사용 하면 데이터베이스 에 강력 한 기능 을 가 진 작업 을 직접 저장 하고 실행 할 수 있 습 니 다.저장 과정 은 첫 번 째 프로그램 이 실 행 될 때 문법 검사 와 컴 파일 을 하고 컴 파일 된 버 전 은 캐 시 에 저 장 됩 니 다.중복 작업 을 수행 할 때 저장 과정 은 성능 과 일치 성 을 높 일 수 있다.저장 과정 은 일련의 데이터 베 이 스 를 데이터베이스 서버 에 놓 고 실행 할 수 있 기 때문에 웹 서버 의 부 하 를 낮 추고 전체 시스템 의 성능 을 향상 시 킬 수 있다.
1. 저장 프로시저 생 성
CREATE PROC [DBO].[GetOrdersByOrderDate]
@OrderDate DATETIME
AS
SELECT
[OrderID],[CustomerID],[OrderDate]
FROM
[Orders]
WHERE
[OrderDate] >= @OrderDate
USE Northwind
GO
EXEC GetByOrderDate '1996-10-10 0:00:00'
2. 저장 프로시저 호출
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Northwind"].ConnectionString);
try
{
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "[GetOrdersByOrderDate]";
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@OrderDate", SqlDbType.DateTime, 8).Value = "1998-5-5";
conn.Open();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
gvOrders.DataSource = ds;
gvOrders.DataBind();
}
catch (SqlException ex)
{
throw new Exception(ex.Message, ex);
}
finally
{
conn.Close();
}
}
3. 출력 매개 변수
저장 프로 세 스 는 출력 매개 변 수 를 통 해 값 을 되 돌려 줄 수 있 습 니 다.
CREATE PROC [DBO].[GetOrderDetailsTotalByProductID]
@ProductID INT,
@Total MONEY OUTPUT
AS
SELECT @Total = SUM([UnitPrice]*[Quantity])
FROM
[Order Details]
WHERE
[ProductID] = @ProductID
SqlConnection(ConfigurationManager.ConnectionStrings["Northwind"].ConnectionString);
try
{
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "[GetOrderDetailsTotalByProductID]";
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@ProductID", SqlDbType.Int, 4).Value = 21;
cmd.Parameters.Add("@Total", SqlDbType.Money).Direction = ParameterDirection.Output;
conn.Open();
cmd.ExecuteNonQuery();
lblTotal.Text = cmd.Parameters["@Total"].Value.ToString();
}
catch (SqlException ex)
{
throw new Exception(ex.Message, ex);
}
finally
{
conn.Close();
}
4、Return 반환 값
반환 값 을 사용 하여 저장 과정의 실행 상 태 를 표시 합 니 다. 출력 매개 변수 와 유사 합 니 다. 차이 점:
(1), 반환 값 은 sql 정수 만 되 돌려 줍 니 다.
(2) 반환 값 은 저장 과정 내부 에서 설명 할 수 없고 Transcat - SQL 의 RETURN 문 구 를 사용 하여 되 돌려 줍 니 다.
CREATE PROC [DBO].[GetOrdersByCustomerID]
@CustomerID INT,
@OrderDate DATETIME OUTPUT
AS
SELECT @OrderDate = MAX([OrderDate])
FROM
[Orders]
WHERE
[CustomerID] = @CustomerID
IF @OrderDate IS NULL
RETURN 0
ELSE
RETURN 1
SqlConnection(ConfigurationManager.ConnectionStrings["Northwind"].ConnectionString);
try
{
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "[GetOrdersByEmployeeID]";
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@ReturnValue", SqlDbType.Int, 4).Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add("@EmployeeID", SqlDbType.Int, 4).Value = 1;
cmd.Parameters.Add("@OrderDate", SqlDbType.DateTime).Direction = ParameterDirection.Output;
conn.Open();
cmd.ExecuteNonQuery();
lblReturnValue.Text = cmd.Parameters["@ReturnValue"].Value.ToString();
lblOrderDate.Text = cmd.Parameters["@OrderDate"].Value.ToString();
}
catch (SqlException ex)
{
throw new Exception(ex.Message, ex);
}
finally
{
conn.Close();
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
useEffect 안에서의 리턴??인스타 클론하다가 또 다시 배운 기능이다. useEffect안에서 리턴을 한다?? 찾아보니 componentWillUnmount와 같은 효과를 낸다는 것이다. useEffect안에서 return을 하면 정리의 개념으...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.