ADO.NET에서의 Command 객체는 이전과는 그리 다르지 않다. 다만 ADO 에서는 Command 객체를 사용하지 않더라도 데이터베이스에서 레코드를 가져올 수 있었다. Command 객체를 사용할 때라고는 Stored Procedure(이하 sp)를 사용할 때에 자주 사용되었다.
하지만 ADO.NET에서는 모든 명령을 내릴 경우에는 이 Command 객체를 사용해야 한다. 데이터를 가져올 때에도, 데이터를 입력, 수정, 삭제 등 모든 명령은 Command 객체를 사용해야 한다는 것이다.
Command 객체의 라이프 사이클(Life Cycle)은 다음과 같다.
물론 꼭 위와 같이 해야 하는 것은 아니다. Command 객체의 생성자에서 Connection 객체와 CommandText 프로퍼티를 같이 지정할 수 있어서 한꺼번에 사용할 수도 있다. 이번에는 생성자에 매개 변수가 없는 것을 사용해서 위와 같은 사이클을 따라서 구현해 보도록 하겠다.
우선 예제에 사용할 데이터베이스의 환경을 구축하도록 하다. 전 Study 라는 데이터베이스를 생성해서 사용하도록 하겠다. 사용하시려는 데이터베이스에서 다음과 같이 테이블을 생성한다. 이번 예제는 테이블의 이름에서도 알 수 있듯이 주소록이 되겠다.
위와 같이 테이블을 만들었으면 테이블에 값을 입력할 수 있도록 sp를 작성하도록 하겠다. 참고로 모든 입력, 수정, 삭제는 sp를 사용해서 진행하도록 하겠다. 하지만 이번 강좌는 기초를 알아보는 부분이므로 sp를 사용하는 방법과 쿼리문을 바로 입력할 수 있도록 한다. 입력을 하는 sp는 필요한 모든 데이터가 입력된 경우에만 데이터를 입력한다. 또, 필요한 필드의 값이 들어오지 않는다면 -1∼-4 의 값을 리턴해서 응용 프로그램에서 사용할 수 있도록 한다.
하지만 ADO.NET에서는 모든 명령을 내릴 경우에는 이 Command 객체를 사용해야 한다. 데이터를 가져올 때에도, 데이터를 입력, 수정, 삭제 등 모든 명령은 Command 객체를 사용해야 한다는 것이다.
Command 객체의 라이프 사이클(Life Cycle)은 다음과 같다.
ⓐ Connection 객체를 생성합니다. ⓑ Command 객체를 생성합니다. ⓒ Command 객체의 CommandText 프로퍼티에 쿼리문이나 저장 프로시저를 설정합니다. ⓓ Command 객체의 CommandType 프로퍼티에 실행될 쿼리문의 종류를 설정합니다. ⓔ Command 객체의 Connection 프로퍼티에 Connection 객체를 설정해줍니다. ⓕ Connection 객체의 Open() 메서드를 호출하여 데이터베이스를 열어줍니다. ⓖ Command 객체의 Execute 메서드를 호출하여 해당 쿼리문이나 저장 프로시저를 실행합니다. ⓗ Connection 객체의 Close() 메서드를 호출하여 데이터베이스를 닫아줍니다. |
물론 꼭 위와 같이 해야 하는 것은 아니다. Command 객체의 생성자에서 Connection 객체와 CommandText 프로퍼티를 같이 지정할 수 있어서 한꺼번에 사용할 수도 있다. 이번에는 생성자에 매개 변수가 없는 것을 사용해서 위와 같은 사이클을 따라서 구현해 보도록 하겠다.
우선 예제에 사용할 데이터베이스의 환경을 구축하도록 하다. 전 Study 라는 데이터베이스를 생성해서 사용하도록 하겠다. 사용하시려는 데이터베이스에서 다음과 같이 테이블을 생성한다. 이번 예제는 테이블의 이름에서도 알 수 있듯이 주소록이 되겠다.
Create Table Address ( ID varchar(20) Not Null -- ID , Name varchar(20) Not Null -- 이름 , Email varchar(100) Null -- 이메일 , Age tinyint Not Null -- 나이 , BirthDay datetime Not Null -- 생일 ) |
위와 같이 테이블을 만들었으면 테이블에 값을 입력할 수 있도록 sp를 작성하도록 하겠다. 참고로 모든 입력, 수정, 삭제는 sp를 사용해서 진행하도록 하겠다. 하지만 이번 강좌는 기초를 알아보는 부분이므로 sp를 사용하는 방법과 쿼리문을 바로 입력할 수 있도록 한다. 입력을 하는 sp는 필요한 모든 데이터가 입력된 경우에만 데이터를 입력한다. 또, 필요한 필드의 값이 들어오지 않는다면 -1∼-4 의 값을 리턴해서 응용 프로그램에서 사용할 수 있도록 한다.
'.net' 카테고리의 다른 글
System.IO 네임스페이스의 재발견 (4) | 2007.07.18 |
---|---|
DataReader (1) | 2007.07.17 |
DB를 연결 (0) | 2007.07.17 |
ADO.NET (2) | 2007.07.17 |
C# 정리 내용 (5) | 2007.07.10 |