일단 DB 를 만듬. 여기서는 "SonTestSite".
그리고 "T_MEMBER_LIST" 란 테이블을 하나 만든다.
각 항목은 적당히 필요한 만큼 만들면 됨.
PK 는 사용자 아이디(strLoginID) 를 사용.
나의 경우는 추가적으로 intNum 이라는 일련번호 항목이 있는데, 이건 거의 습관적으로 쓰는 항목이라, 굳이 필요없다면 안써도 상관 없음.
이건 일련 번호로 쓸꺼이므로, 자동 증가 값을 '1' 을 지정해 놓음.
(이렇게 해 놓으면, 쿼리상에 기록 안해도 자동으로 값이 입력되지 별도로 신경 안써도 됨.)
그리고 날짜 항목은 모두 "getdate()" 를 기본값으로 지정해 놓음.
SignDate 는 로그인한 날짜, RegDate 는 등록 날짜, ModDate 는 수정 날짜임.
숫자인 항목은 기본 값으로 '0'을 지정함.
이렇게 한다음 VisualStudio 에 DB 를 등록.
"Database" 솔루션 폴더에서 마우스 오른쪽 버튼을 클릭하고 "새 프로젝트" 를 추가.
거기다 "데이터베이스 프로젝트" 를 등록.
등록된 프로젝트의 속성 창으로 이동.
디버그 페이지에 보면, "대상 연견 문자열" 이라는게 있는데, 그걸 편집.
거기서 사용할 서버와 데이터 베이스를 지정함.
"연결 테스트" 를 클릭해 연결이 잘되는지 확인.
그럼 이렇게 연결 문자열이 바뀜.
이제 DB 연결이 되었으니...
DB 프로젝트에서 "추가" 항목에서 "저장 프로시저" 선택.
일단, 샘플로 "P_MEMBER_MemberList_SELECT" 라는 저장 프로시저를 생성.
그럼 요렇게 기본 틀을 만들어 줌.
요상태에서 시작 버튼을 클릭해 보면...
연결된 DB로 배포함.
DB 를 확인해 보면 VisualStudio 에서 만든 저장 프로시져가 등록되어 있는 것을 볼 수 있음.
사실 DB 를 VisualStudio 에 꼭 등록해서 개발할 필요는 없음.
이렇게 하는 이유는 개발하는 "웹사이트 소스" 와 "DB 스크립트" 를 동시에 관리하기 위해서 임.
즉, 이렇게 개발 하면 소스 폴더를 압축해 놓는 것 만으로 웹사이트 소스와 DB 스크립트를 한번에 백업이 가능하며, SourceSafe 나 SVN 같은 것으로 소스관리를 해 놓으면, DB 쿼리 까지 버젼 관리를 할 수 있음.
위에서 보면 알수 있지만, 저장 프로시져 뿐만 아니라, 테이블도 VisualStudio 에서 관리 할 수 있는데, VisualStudio 에서 하지 않은것은 단지 MsSql 에서 만드는게 편리하고, 수시로 바뀌는 저장프로시저에 비해 테이블은 거의 바뀌지 않으니 따로 만든 것일 뿐.
테이블까지 꼼꼼하게 관리하고 싶으면 만들어도 됨. (별로 추천은 안함)
주의 할 것은, 상단에 있는 실행 버튼을 클릭시 DB 스크립트를 "배포" 를 해버린다는 문제 점이 있음. 그야 말로 통채로 다 갈아 엎어 버림.
그래서, 주로 마우스 오른쪽 버튼을 클릭했을 때 나오는 실행 버튼을 이용해 현재 스크립트만 실행하는 방법을 주로 씀.
이렇게 실행 하면...
해당 스크립트만 실행 해 주지만...
이미 스크립트가 생성되어 있는 상태에서 쿼리가 실행 되므로 스크립트 오류가 발생함.
이상태에서 상단의 "실행(시작)" 버튼을 클릭해 보면 에러 없이 실행이 되는데...
이건, "실행(시작)"은 배포로써 스크립트를 생성하는 것이고, 마우스 오르쪽버튼으로 "실행" 했을 때는 스크립트를 "실행" 하는 것이라 그럼.
즉, "CREATE" 를 "ALTER" 로 바꾸면 양쪽다 에러가 없으니 괜찮... 을것 같지만...
이 스크립트를 가지고 새 서버에 배포를 할 경우 기존에 없는 저장 프로시져라 오류가 발행 함.
그래서...
이렇게 프로시져가 있는지 체크하고 있을 경우 지운 뒤, "CREATE" 를 하면 문제 없음.
단... 이렇게 쓸려면...
"빌드 동작" 이 "없음" 으로 지정되어 있어야 함.
이 상태에서 마우스 오른쪽 버튼을 이용해 "실행" 을 시키면...
이렇게 "명령이 완료되었습니다." 라는 메시지가 나옴.
저장 프로시져 생성 명령을 날렸으니, 당연한 반응이지만...
이 쿼리의 실행 결과가 보고 싶다면...
상단에다 주석을 이용해 쿼리를 기록해 두고...
그 쿼리를 블록으로 지정하고 "실행" 을 하면...
이렇게 지정한 영역을 DB 에서 실행 하고 그 결과를 받아옴...
다시 말해 VisualStudio 를 잘 활용하면 DB 를 열어 보지 않고도 개발 할 수 있음.
일단 쿼리를 만들었으니, 웹에서 실행해 보도록 하자...
참고로, 아래의 구성 방법은 수많은 개발 방법중 하나일 뿐이므로, 꼭 이렇게 할 필요는 없다.
우선, "DacLayer" 에 새 프로젝트를 하나 생성한다.
"Site.Dac" 라는 클래스 라이브러리를 하나 생성. 물론 명칭은 편한대로 지정하면 됨.
"Site.Dac" 에다 "새 항목"을 하나 추가.
"Config" 라는 클래스를 추가한다.
거기다 단순히 DB 연결 문자열을 지정해 둔다.
단, "public" 으로 지정해야 한다.
일단 "솔루션 빌드" 를 하고 이상 없으면...
웹사이트에서 "추가 > 참조" 로 이동.
방금 만들어 둔 "Site.Dac" 를 선택하고 "확인"
그럼 이렇게 "Bin" 이라는 폴더가 생성되고 그곳에 "DLL" 파일이 등록되어 있는 것을 볼 수 있다.
이렇게 번거롭게 만드는 이유는 앞으로 작업 모듈을 클래스화 해 웹사이트와 분리/관리하기 위함이다.
요렇게 됬으면...
Default.aspx 를 이용해 데이터를 확인해 보자.
Default.aspx 에 "Literal" 하나를 추가 해놓고...
비하인드 코드에 이렇게 기록.
참조에 "Site.Dac" 를 지정해 놓았으니, "using Site.Dac" 이렇게 써서 기존에 만들어 놓은 라이브러리를 쓸 수있다.
"Site.Dac" 에 "Config" 클래스가 public 이니, DB 커넥션 지정할 때 "Config.connectionString" 을 지정 가능.
실행 쿼리는 이전에 만들어 둔 "P_MEMBER_MemberList_SELECT" 를 사용.
데이터가 아무것도 없으면 아무것도 안나올테니...
미리 샘플용으로 데이터를 하나 넣어 놓음.
요렇게 디비를 조회 하면...
결과 값이 나옴. OK.