sub_title
 ASP.NET
제   목 출력 매개변수를 갖는 저장 프로시저 ASP.NET에서 사용하기
작성자 아침마당 등록일 2010-10-04 13:28:06 조회수 8,158

출력 매개변수를 갖는 저장 프로시저 ASP.NET에서 사용하기

출력 매개변수를 갖는 저장 프로시저를 ASP.NET에서 사용하기 위해서는 먼저 저장 프로시저에 대한 정의가 필요하다.

그리고 출력 매개변수 갯수에 따라서 사용하는 방식이 약간 다르다.

 

출력 매개변수가 1개일 경우에는 메서드를 만들어서 호출하여 처리를 한 후에 리턴 값으로 출력 매개변수를 넘겨주면 되지만

출력 매개변수가 2개 이상일 경우에는 리턴 값을 1개 이상 지정하기 위해서는 변수로는 되지 않는다.

출력 매개변수를 2개 이상을 리턴 받기 위해서는 클래스를 만들고 클래스를 이용하여 출력 매개변수를 넘겨 받으면 된다.

 

1. 출력 매개변수가 1개일 때

SQL Server에 저장 프로시저 만든다.

CREATE PROC sp_member_add

(

@Name     varchar(50),

@Content      varchar(300),

@Email     varchar(50),

@No     int     OUTPUT

)

AS

INSERT INTO 테이블

(

name, content, email

)

VALUES

(

@Name, @Content, @Email

)

SELECT @No = @@Identity //전역변수로서 insert 후에 자동으로 증가되는 필드값이다. 이 외에도 자주 사용하는 전역변수로는 @@error = 0 이 있는데 이는 에러가 없을 때 정상 처리하고 다른 번호가 나오면 에러 처리하는 경우에 사용한다.

GO

 

다음은 ASP.NET에서 1개 출력 매개변수를 처리하는 예이다.

   public member_add( string name, string content, string email )
    {

        데이터베이스 연결 객체를 만들고 오픈을 한다.

        string dbinfo = @"Server=서버명;uid=아이디;pwd=패스워드;database=데이타베이스명";

        SqlConnection conn;

        conn = new SqlConnection( dbinfo );

        conn.Open(); 
        SqlCommand cmd = new SqlCommand("sp_member_add", conn);

        cmd.CommandType = CommandType.StoredProcedure;

        SqlParameter param1 = new SqlParameter("@Name", SqlDbType.VarChar, 50 );
        param1.Value = name;
        cmd.Parameters.Add(param1);

        SqlParameter param2 = new SqlParameter("@Content", SqlDbType.VarChar, 300);
        param2.Value = content;
        cmd.Parameters.Add(param2);

        SqlParameter param3 = new SqlParameter("@Email", SqlDbType.VarChar, 50);
        param3.Value = email;
        cmd.Parameters.Add(param3);

        SqlParameter param4 = new SqlParameter("@No", SqlDbType.Int, 4); //데이터 크기를 생략할 수 있다.
        param4.Direction = ParameterDirection.Output;
        cmd.Parameters.Add(param4);

        cmd.ExecuteNonQuery();

        conn.Close();

        int no = (int) param4.Value;

        return no;
    }

 

2. 출력 매개변수가 2개 이상 일 때

SQL Server에 저장 프로시저 만든다.

CREATE PROC sp_get_member

(

@No     int,

@Name     varchar(50)      OUTPUT,

@Content      varchar(300)      OUTPUT,

@Email     varchar(50)       OUTPUT

)

AS

SELECT  @Name = name, @Content = content, @Email = email

FROM 테이블

WHERE no = @No

GO

 

다음은 ASP.NET에서 2개 이상 출력 매개변수를 처리하는 예이다.

우선 여러개의 출력 매개변수를 처리하기 위해서 클래스를 생성을 한다.

public class Meminfo
{
    public string Name;
    public string Content;
    public string Email;
}

   public MemInfo get_member( int no)
    {

        데이터베이스 연결 객체를 만들고 오픈을 한다.

        string dbinfo = @"Server=서버명;uid=아이디;pwd=패스워드;database=데이타베이스명";

        SqlConnection conn;

        conn = new SqlConnection( dbinfo );

        conn.Open(); 
        SqlCommand cmd = new SqlCommand("sp_get_member", conn);

        cmd.CommandType = CommandType.StoredProcedure;

        SqlParameter param1 = new SqlParameter("@No", SqlDbType.Int, 4);
        param1.Value = no;
        cmd.Parameters.Add(param1);

        SqlParameter param2 = new SqlParameter("@Name", SqlDbType.VarChar, 50); 

        param2.Direction = ParameterDirection.Output;
        cmd.Parameters.Add(param2);

        SqlParameter param3 = new SqlParameter("@Content", SqlDbType.VarChar, 300); 

        param3.Direction = ParameterDirection.Output;
        cmd.Parameters.Add(param3);

        SqlParameter param4 = new SqlParameter("@Email", SqlDbType.VarChar, 50); 

        param4.Direction = ParameterDirection.Output;
        cmd.Parameters.Add(param4);

        cmd.ExecuteNonQuery();

        conn.Close();

        MemInfo member = new MemInfo();

        member.Name = (string) param2.Value;

        member.Content = (string) param3.Value;

        member.Email = (string) param4.Value;

        return member;
    }

 
0
    
 
0
        list
 
※ 짧은 댓글일수록 예의를 갖추어 작성해 주시기 바랍니다.
line
reply cancel
 
번호 제목 글쓴이 추천 조회 날짜
29  ASP.NET에서 Gridview 내용을 Excel로 export하기   member 아침마당 2 / 0 9984 2010-11-01
28  ASP.NET에서 메일 보내기   member 아침마당 0 / 0 5639 2010-10-26
27  문자열 변수 = 문자열 변수 + 정수형 변수   member 아침마당 0 / 0 3319 2010-10-21
26  출력 매개변수를 갖는 저장 프로시저 ASP.NET에서 사용하기   member 아침마당 0 / 0 8158 2010-10-04
25  ASP.NET에서 저장 프로시저 사용하기   member 아침마당 2 / 0 9816 2010-09-30
24  저장 프로시저 만들기   member 아침마당 1 / 0 4790 2010-09-28
23  Visual Studio 2010 단축키 요약 파일 첨부파일   member 아침마당 0 / 0 5086 2010-09-07
22  ASP.NET에서 예외 처리에 대해서   member 아침마당 0 / 0 4588 2010-08-29
21  답변형 게시판 예제 파일   member 아침마당 1 / 0 3264 2010-08-22
20  리스트 컨트롤과 컬렉션에 대해서   member 아침마당 1 / 0 6126 2010-08-17
19  데이터 바인딩과 배열에 대해서   member 아침마당 0 / 0 3937 2010-08-16
18  Gridview control에 TemplateField를 사용하는 이유   member 아침마당 1 / 1 4371 2010-08-12
17  C#의 제어문   member 아침마당 0 / 0 5015 2010-08-04
16  Windows SharePoint Services 3.0 도구에 대하여   member 아침마당 0 / 0 3332 2010-07-17
15  C#의 기본 규칙   member 아침마당 0 / 0 3688 2010-07-09
14  닷넷에서 DataSet 다루기   member 아침마당 0 / 0 24589 2010-06-21
13  ASP.NET에서 TextBox에 onfocus, onblur 이벤트 적용 예   member 아침마당 0 / 0 5418 2010-06-15
12  ASP.NET에서 TextBox 엔터키 적용과 주민 번호 검증 예   member 아침마당 0 / 0 5538 2010-06-15
11  ASP.NET 정수<-->문자열 형변환, 메시지출력, switch문 사용 예   member 아침마당 0 / 0 8071 2010-06-15
10  닷넷에서 XML 다루기 이미지 첨부파일   member 아침마당 1 / 0 5663 2010-06-07
9  데이터 그리드 안에 있는 컨트롤 이벤트 만들기   member 깐소금 0 / 0 5410 2007-11-18
8  로딩페이지 구현하기   member 깐소금 0 / 0 7013 2007-11-18
7  CDO객체를 이용하여 야후 smtp로 메일 보내기   member 먹깨비 0 / 0 4978 2007-11-15
6  C# 버블소트 알고리즘   member 웹스톤 0 / 0 4470 2007-11-14
5  @OutputCache 디렉티브를 사용한 페이지 성능 향상   member 먹깨비 0 / 0 6516 2007-09-17
write
[2] button