티스토리 뷰

저장 프로시저(SP)

- 쿼리문을 여러 개 실행할 수 있다.

장점: 소스코드와 분리되어 쿼리 관리가 쉬워진다.

 

새 프로시저 생성

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		
-- Create date: 2024.01.28
-- Description:	신규 책 추가 프로시저
-- =============================================
CREATE PROCEDURE InsertBOOKS
	-- 파라미터 : 프로시저를 호출함에 있어서 인자로 매개변수와 같은 역할을 하는 것임.
	@BOOKNO varchar(20),
	@BOOKNAME varchar(50),
	@BOOKCODE varchar(50)
AS
BEGIN
	-- 쿼리문 작성 영역
	SET NOCOUNT ON; --반영된 행의 개수를 표시하지 않음. 쿼리 실행 속도를 높임.

	INSERT INTO BOOKS
	(
	BOOKNO,
	NAME,
	CODE
	) 
	VALUES
	(
	@BOOKNO,
	@BOOKNAME,
	@BOOKCODE
	);

END
GO

 

private void button3_Click(object sender, EventArgs e)
{
    string bookNo = textBox6.Text;
    string bookName = textBox5.Text;
    string bookCode = textBox7.Text;

    using (SqlConnection conn = new SqlConnection(connectionString))
    {
        conn.Open();
        //프로시저 연결
        SqlCommand command = new SqlCommand("InsertBOOKS", conn);
        //첫번째 인자는 프로시저명
        //두번재 인자는 Connection
        command.CommandType = CommandType.StoredProcedure;

        //파라미터 추가
        SqlParameter p1 = new SqlParameter("BOOKNO", SqlDbType.VarChar);
        //첫번째 인자는 파라미터명
        //두번재 인자는 파라미터타입
        p1.Direction = ParameterDirection.Input; //입력 값을 넣기
        p1.Value = bookNo;
        //생성한 파라미터를 커멘드에 넣어주기
        command.Parameters.Add(p1);

        SqlParameter p2 = new SqlParameter("BOOKNAME", SqlDbType.VarChar);
        p2.Direction = ParameterDirection.Input; 
        p2.Value = bookName;
        command.Parameters.Add(p2);

        SqlParameter p3 = new SqlParameter("BOOKCODE", SqlDbType.VarChar);
        p3.Direction = ParameterDirection.Input; 
        p3.Value = bookCode;
        command.Parameters.Add(p3);

	//프로시저 실행
        command.ExecuteNonQuery();
    }
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함