이번에는 저장 프로시저를 이용하는 예를 들어보기로 할게요.
먼저 도서를 추가하는 저장 프로시저를 만듭니다.
CREATE PROCEDURE dbo.AddBook ( @ISBN varchar(50), @Title varchar(50), @Author varchar(50), @Price int, @Result int OUTPUT ) AS begin set @Result = 0 select @Result = count(*) from Books where (ISBN=@ISBN) if @Result = 0 begin insert Books values(@Title,@Price,@Author,@ISBN) set @Result = 1 end end RETURN |
[소스] AddBook 저장 프로시저
저장 프로시저를 실행하려면 SqlCommand의 CommandType 속성을 StoredProcedure로 설정해야 합니다.
command.CommandType = System.Data.CommandType.StoredProcedure;
AddBook 저장 프로시저를 보면 @Result 인자는 인자 유형이 OUTPUT으로 되어 있기 때문에 파라미터의 방향을 Output으로 설정해야 합니다.
SqlParameter param_result = new SqlParameter();
param_result.Direction = System.Data.ParameterDirection.Output;
param_result.ParameterName = "@Result";
param_result.SqlDbType = System.Data.SqlDbType.Int;
command.Parameters.Add(param_result);
static void Main(string[] args) { AddBook(".NET 플랫폼", 15000, "홍길동", "9224764583"); AddBook("CSharp", 18000, "홍길동", "9228964583"); }
private static void AddBook(string title, int price, string author, string isbn) { string comtext = "AddBook"; string constr = @"Data Source=[서버 이름];Initial Catalog=[DB 명]; User ID=[ID];Password=[PW]";
SqlConnection scon = new SqlConnection(constr); SqlCommand command = new SqlCommand(comtext, scon); command.CommandType = System.Data.CommandType.StoredProcedure;
SqlParameter param_title = new SqlParameter("@Title", title); command.Parameters.Add(param_title);
SqlParameter param_price = new SqlParameter(); param_price.ParameterName = "@Price"; param_price.SqlDbType = System.Data.SqlDbType.Int; param_price.Value = price; command.Parameters.Add(param_price);
SqlParameter param_author = new SqlParameter("@Author", author); command.Parameters.Add(param_author);
SqlParameter param_isbn = new SqlParameter("@ISBN", isbn); command.Parameters.Add(param_isbn);
SqlParameter param_result = new SqlParameter(); param_result.Direction = System.Data.ParameterDirection.Output; param_result.ParameterName = "@Result"; param_result.SqlDbType = System.Data.SqlDbType.Int; command.Parameters.Add(param_result);
scon.Open(); command.ExecuteNonQuery(); int result = (int)param_result.Value; if (result == 1) { Console.WriteLine("{0} 도서추가 성공", title); } else { Console.WriteLine("{0} 도서추가 실패", title); } scon.Close(); } |
[소스] 저장 프로시저를 이용한 도서 추가 예제 코드
'프로그래밍 기술 > SQL과 ADO.NET' 카테고리의 다른 글
[ADO.NET] DataTable 클래스와 XML을 이용한 도서 관리 프로그램 만들기 (0) | 2016.04.22 |
---|---|
[ADO.NET] DataTable 개체에 행 추가 (0) | 2016.04.22 |
[ADO.NET] DataTable 클래스 개체 생성과 테이블 구조 설계 (0) | 2016.04.22 |
[MSSQL] 저장 프로시저 만들기 실습 (0) | 2016.04.22 |
서버 탐색기를 이용하여 SQL 저장 프로시저 사용하기 (0) | 2016.04.22 |
[ADO.NET] SqlParameter 클래스 사용 예 - 도서 추가 (0) | 2016.04.22 |
[ADO.NET] SqlParameter 클래스 생성자, 속성 (0) | 2016.04.22 |
[ADO.NET] SqlCommand 클래스의 ExecuteNonQuery , ExecuteReader 메서드 (0) | 2016.04.22 |
[ADO.NET] SqlCommand 생성자, 속성 (0) | 2016.04.22 |
[ADO.NET] SqlCommand 클래스 개요 (0) | 2016.04.22 |