ASP.NET : Database 접근 2008 컴퓨터공학실험(Ⅰ)

Slides:



Advertisements
Similar presentations
1 넷스팟 MAC ID 설정 방법 ( 서울캠퍼스 기준 ) 각종 스마트폰의 WiFi 를 이용시 각종 스마트폰의 WiFi 를 이용시 MAC ID 설정을 하는 방법 입니다. 아이폰의 경우는 별도의 설정없이 바로 사용이 가능하오니, 사용이 어려울 경우, 고객센터로 문의하시면 됩니다.
Advertisements

스마트 KTC 사용자 매뉴얼 스마트폰용 모바일학생증 앱 설치 및 기본기능. 강원관광대 스마트 KTC 앱 설치 강원관광대학교 모바일학생증 앱 ( 이하 ‘ 스마트 KTC’ 로 명명 ) 은 안드로이드폰은 Google Play Store, 아이폰 은 App Store 에서 무료로.
아이튠즈 계정 생성. 1. 인터넷을 통해 설치한 아이튠즈를 실행 한 후 그림의 순서대로 선택을 합니다. 1 2.
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
파워포인트 2007.
DB 프로그래밍 학기.
DB 프로그래밍 학기.
피티라인 파워포인트 템플릿.
1 ENT 출고확정 처리방법 ? 1. 발주관리 > 주문전체 보기 내 필드 추가 확인 ? ENT 주문관리 페이지에서 그림
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
주)INVENTORNICS 노창배 소프트웨어 김 경 순
연결리스트(linked list).
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
13장. 자바빈과 데이터베이스를 연동한 게시판 시스템
Outlook Express 메일 백업 및 복원가이드
6장 Mysql 명령어 한빛미디어(주).
MVC 기반 게시판 작성 Youbok Choi.
MySQL 및 Workbench 설치 데이터 베이스.
14장 질의응답 한빛미디어(주).
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
Windows 8 Ksystem G&I 설치.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
홍익대학교 메일 시스템 구축 Outlook 설정 매뉴얼.
PLISM 컴포넌트 설치 방법.
ASP.NET : Database 접근 2008 컴퓨터공학실험(Ⅰ)
[ ] 호서대학교 현장실습지원센터 홈페이지 안내 교수 매뉴얼.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
Communication and Information Systems Lab. 황재철
1. C++ 시작하기.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Outlook Addin 설치 방법 및 매뉴얼
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
KHS JDBC Programming 4 KHS
KIM HEESANG PL/SQL 2 KIM HEESANG
You YoungSEok Oracle 설치 You YoungSEok
CHAP 13. 방명록 만들기 실습.
7가지 방법 PowerPoint에서 공동 작업하는 다른 사용자와 함께 편집 작업 중인 사용자 보기
JDBC Lecture 004 By MINIO.
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
이메일 자동 포워딩 방법 (Outlook/OWA)
홀인원2.0 설치 메뉴얼.
2018년 11월 05일 박성진 Web & Internet [08] 레이아웃 P1 2018년 11월 05일 박성진
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
USN(Ubiquitous Sensor Network)
ADO.NET (SqlConnection, SqlCommand)
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
기말 프로젝트 계획 MVC 패턴 기반 웹 애플리케이션 개발 프로젝트명 : 팀명 : 팀원 :
법령안편집기 연결버튼 표시가 안 될 경우 정부입법지원센터( 입안 및 심사안을 진행시
컴퓨터 개론 및 실습 1주차 2015년 03월 05일.
PMIS 서버 설정 환경설정 작성자 : 배경환.
( Windows Service Application Debugging )
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
XML.NET (2/2) DB를 이용한 XML 검색, 수정 프로그램 작성 2008 컴퓨터공학실험(Ⅰ)
05. General Linear List – Homework
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
Chapter 10 데이터 검색1.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
PMC-6208 Easy Manual 작성일자 : 2015년 02월 17일 INTER-M C/S팀 김성배
maria db JDBC PROGRAMMING 5
어드민 로그인 ID : admin 비밀번호 : 서보테크 1. 제품소개 등록 - MISUBISHI
 6장. SQL 쿼리.
피티라인 파워포인트 템플릿.
오늘의 강의 제목을 입력하세요 소 속 : 인문대학 국어국문학과 이 름 : 홍길동 교수 1.
Presentation transcript:

ASP.NET : Database 접근 2008 컴퓨터공학실험(Ⅰ) 3주 실습강의 ASP.NET : Database 접근 2008 컴퓨터공학실험(Ⅰ)

Preface 폼의 유효성 검사 : Field Validation ASP.NET에서 Access DB (MDB) 연결 / 조작 RequiredFieldValidator RegularExpressionValidator ValidationSummary ASP.NET에서 Access DB (MDB) 연결 / 조작 AccessDataSource (or SqlDataSource) GridView OleDbConnection, OleDbCommand, OleDbDataReader 이번 주에는 Microsoft Access DB(=MS Jet DB)를 사용하여 게시판을 만들면서, 저번 주에 이어서 Visual Studio 2005 툴의 적응력 향상에 중점을 두게 되겠습니다. 기본적인 Web Forms 이외에, Form에 내용이 올바르게 입력되고 있는지를 검사하는 Validator와, ADO.NET에서 OleDB 를 사용해서 DB에 접근하고, 조작하는 방법에 대해 다루고자 합니다.

DB 테이블 create table cee_w3_board ( seq int identity (1, 1) not null primary key clustered, writer varchar (20) not null , pwd varchar (20) not null , email varchar (100) null , title varchar (200) not null , writedate smalldatetime not null default (getdate()), readed int not null default (0), mode tinyint not null , content varchar (8000) null ) 여기에 표기된 DB 테이블은 MSSQL이나 기타 RDBMS를 위한 테이블 정의이며, 이번 수업에서는 MS Access에서 미리 준비한 MDB 파일을 가지고 진행 할 것입니다.

MS JetDB : 테이블 구조 Access – 디자인 보기

Write.aspx – 레이아웃

Write.aspx 접근 방법 Store Form Data in Database Form → DB Column Binding 입력/검증 Form → DB Column Binding Store Form Data in Database 먼저 Form의 입력을 검증하는 부분을 완성 하고, 그 다음 Form 과 DB의 컬럼과 바인딩을 합니다. (어떻게 넘겨줄지를 결정.) 올바르게 바인딩이 되면 이 데이터를 어떻게 데이터베이스로 저장할 것인지에 대해 고민하는 방식으로 접근하도록 합니다.

Write.aspx – 웹폼 컨트롤 속성 형식 부분이 여기서는 라디오 버튼으로 되어 있는데, 라디오 버튼으로 구현하셔도 되고, 체크박스로 구현하셔도 됩니다.

Write.aspx – Validation 컨트롤 속성 이름, 제목, 내용, 비밀번호에는 RequiredFieldValidator를, 메일주소를 위해서 RegularExpressionValidator를 사용합니다.

Validator의 종류 / 기능 Regex를 사용한 Validator의 경우를 위해 Regex를 잠시 언급하고자 했는데, RegularExpressionValidator 컨트롤의 속성 – “동작” – ValidationExpression 을 눌러보면 미리 만들어진 정규표현식이 준비되어 있기 때문에, 그 속에서 E-Mail을 선택하면 관련된 정규표현식을 즉석에서 바로 사용할 수 있습니다. 다만 VS 2005에서 값이 아예 채워지지 않은 경우에는 식에 상관없이 (Regex)Validator가 검증을 하지 않기 때문에 값이 폼에 채워지지 않는 경우를 위해 부득이하게 RequiredFieldValidator를 병용해야 합니다. 병용하지 않을 경우에는, E-Mail을 넣지 않았을 때와 관련된 예외처리(list.aspx 쪽의 작성자 메일 링크 관련)가 필요합니다. 추가적인 Validator의 응용에 대해서는 다음의 페이지를 참조하시는 것도 좋을 것입니다. http://www.taeyo.net/Lecture/NET/Tip_MyScript.asp

Write.aspx – 데이터 컨트롤 AccessDataSource 컨트롤을 디자인 화면에서 추가시킨 뒤, 오른쪽 버튼을 누르면 “데이터 소스 구성”이 나타납니다.

Write.aspx – 데이터 소스 구성 (1/3) 이 슬라이드에서는 Sql파일을 연결하는 스크린 샷을 찍은 부분입니다. 굳이 AccessDataSource를 사용하지 않아도, SqlDataSource내에 MS Access를 위한 OleDB 커넥터가 준비되어 있기 때문에 어느 것을 사용해도 사실 문제는 없습니다.

Write.aspx – 데이터 소스 구성 (2/3)

Write.aspx – 데이터 소스 구성 (3/3) 데이터 삽입에 사용되는 INSERT 문의 예입니다. Write.aspx에서 사용되겠네요.

Write.aspx – 데이터 컨트롤 속성 데이터 소스 구성을 통하지 않고, “데이터” – DataFile속성에 파일을 직접 지정해 주고, 각 쿼리 부분에 원하는 쿼리를 작성하여 설정을 완료할 수 있다. “동작” – DataSourceMode속성에는 DataSet과 DataReader가 있는데, GridView와 같은 컨트롤 에서는 DataSet을, ListBox와 같이 정렬, 페이징 등이 필요 없는 컨트롤에서는 DataReader로 설정하여 사용할 수 있다.

Write.aspx – 쿼리문 입력 AccessDataSource를 사용하면, Insert/Update/Delete/Select를 위한 쿼리를 작성 할 수 있습니다. 이들 중에서 Insert/Update/Delete는 Web Form과 적절한 조화를 이루어 손쉽게 값을 갱신/추가/삭제 할 수 있고, Select의 경우에는 DetailView나 GridView와 같은 컨트롤과 병용하여 손쉽게 사용할 수 있습니다. SQL(발음은 ANSI 표준에서 “es queue el” 로 발음. 많은 수의 비 영어권 개발자들이 siːkwəl- 이라고 부르기도 합니다.) 작성에 그다지 어려움을 겪지는 않겠지만, 조금 더 손쉽게 작성하는 데 도움이 될 것입니다. 출력의 여부가 SELECT – FROM 사이에 들어가는 컬럼을 결정하고, 정렬형식은 SQL문 마지막 위치에 ORDER BY~ 를 생성해 냅니다. 필터는 WHERE 절을 채워주게 됩니다.

Write.aspx – 파라메터 컬렉션 편집 직전 슬라이드에서 언급했듯, INSERT/UPDATE문을 Web Form(Control)과 손쉽게 연결 할 수 있습니다. 어떤 형식으로 전달할 것인지, 어떤 컨트롤을 보낼 것인지 등을 설정할 수 있습니다. 컨트롤 이외에도, 이 수업에서 다루지는 않을 것이지만 Cookie/Session과의 동기화, 그리고 웹 페이지의 Request QueryString 과의 연계도 가능합니다. (예: 주소로 view.aspx?n=1, 즉 C# Codebase 기준에서 접근할 때 Request.Params[“n”] 값과 연결이 가능합니다.)

Write.aspx – 코드 입력 및 완료 위의 코드는 직접적으로 파라미터를 넘겨주는 형식으로 구현한 것이고, private void btnSubmit_Click(object sender, System.EventArgs e) { if(IsValid) dbCommandAddArticle.Parameters["writer"].Value = txtWriter.Text; dbCommandAddArticle.Parameters["pwd"].Value = txtPassword.Text; dbCommandAddArticle.Parameters["email"].Value = txtEmail.Text; dbCommandAddArticle.Parameters["title"].Value = txtTitle.Text; dbCommandAddArticle.Parameters["content"].Value = txtContent.Text; dbCommandAddArticle.Parameters["mode"].Value = rdoMode.SelectedIndex; dbConnection.Open(); dbCommandAddArticle.ExecuteNonQuery(); dbConnection.Close(); Response.Redirect("list.aspx"); } 만약 Parameter 연결을 했을 경우, 다음과 같이 짧은 코드로 완성이 가능하다. protected void Button_Submit_Click(object sender, EventArgs e) if(IsValid) // 글 삽입 모드 AccessDataSource1.DataBind(); AccessDataSource1.Insert(); 위의 코드는 직접적으로 파라미터를 넘겨주는 형식으로 구현한 것이고, 아래의 코드는 Web Form – Parameter Collection과 연결한 경우, 필요한 코드를 구현한 것입니다.

List.aspx – 개발 접근 순서 DB에 저장된 게시물 목록을 가져오고, 각 게시물과 연결을 어떻게 해야 할 것인가? DataSource 선택 / 컨트롤 배치 DB에 저장된 게시물 목록을 가져오고, 각 게시물과 연결을 어떻게 해야 할 것인가? 페이지 GridView – Access(or Sql)DataSource 연결 Paging – GridView 기본 사용? 직접 구현? 각 게시물 연결 게시물을 보기 위해 TemplateItem을 구현 작성자 메일 연결을 구현

List.aspx – 컨트롤 설정

List.aspx – DataSource : Select 구문

List.aspx – GridView 속성 GridView속성 에서는 “기타” 항목의 Column 에서 컬럼을 설정할 수 있고, “데이터” 항목에서 DataSourceID를 선택, 원하는 데이터 소스(AccessDataSource / SqlDataSource)를 선택할 수 있습니다. DataKeyNames에서는 GridView에서 참조할 데이터베이스의 컬럼 명을 추가하면 됩니다. 기본적인 레이아웃 / 스타일에 대한 수정은 다른 Web Form과 동일하며, “스타일” 항목에서 컬럼, 페이지 부분에 대한 개별적인 스타일을 설정할 수 있습니다. ASP.NET 2.0에서 GridView는 페이징에 대한 부분이 추가되었고, 따라서 개발자가 손수 페이징을 구현하는 것 이외의 좀 더 편한 구현이 가능하게 되었습니다. (속성 - “페이징” 항목을 참조하세요.)

List.aspx – GridView 필드 설정 속성 – 기타 – Columns 를 선택하면 필드를 수정할 수 있습니다. 수업에는 기본적으로 데이터를 바인딩해주는 BoundField와 개발자가 직접 열을 조작할 수 있는 TemplateField를 사용해서 진행하도록 할 것입니다.

List.aspx – 자동 서식 지정 서식의 디자인을 손쉽게 변경할 수 있습니다. 물론 한국적 센스와는 약간 거리가 있는 경우가 많지만요.

List.aspx – 데이터 그리드 템플릿 편집 템플릿 필드 내에 <ItemTemplate></ItemTemplate>를 추가하고, 그 안에 코드 비하인드(.cs) 파일의 함수를 호출하는 구문을 추가합니다.

List.aspx – 호출되는 메서드 작성 호출되는 코드 비하인드 내의 메서드 구현입니다.

View.aspx – 컨트롤 설정 “기본 “ 항목에서 각각의 Label을 추가하고, 다음 글 / 이전 글 보기 위해서 LinkButton을 두 개 추가. 그리고 수정 / 삭제 / 목록보기를 위해서 Button / 또는 LinkButton 을 사용하도록 합니다 View.aspx를 구현하기 위해서, OleDBConnection 을 다루는 방법에 대해 자세하게 다루게 될 것입니다.

View.aspx 구현 접근 과정 외부로 부터 게시물 번호를 받아와야 함. 게시물 번호 참조 외부로 부터 게시물 번호를 받아와야 함. View.aspx?n= → Request.Params[“n”] 게시물 출력 받아온 게시물 번호를 사용, 게시물을 DB로부터 가져옴 (SELECT 구문) 조회수 갱신 및 완성 조회수 갱신 (UPDATE 구문) 이전 / 다음 페이지 번호 가져오기

View.aspx – DB관련 개체 설정 OleDbConnection 하나 OleDbCommand 1 ConnectionString 설정 OleDbCommand 1 (Name) : dbCommandGetArticle Connection : dbConnection CommandText : SELECT writer,email,title,mode,content,readed,writeDate FROM cee_w3_board WHERE seq = ? Parameters : 하나 추가 ParameterName : seq SqlDbType : integer

View.aspx – DB관련 개체 설정 OleDbCommand 2 (Name) : dbCommandUpdateReadCount Connection : dbConnection CommandText : UPDATE cee_w3_board SET readed=readed+1 WHERE seq = ? Parameters : 하나 추가 ParameterName : seq SqlDbType : integer

View.aspx – DB관련 개체 설정 OleDbCommand 3 (Name) : dbCommandGetPrevArticle Connection : dbConnection CommandText : SELECT top 1 seq, title FROM cee_w3_board WHERE seq > ? ORDER BY seq ASC; Parameters : 하나 추가 ParameterName :seq SqlDbType : integer

View.aspx – DB관련 개체 설정 OleDbCommand 4 (Name) : dbCommandGetNextArticle Connection : dbConnection CommandText : SELECT top 1 seq, title FROM cee_w3_board WHERE seq < ? ORDER BY seq DESC Parameters : 하나 추가 ParameterName : seq SqlDbType : integer

View.aspx 세부 구현 (Page_Load : 1) AccessDataSource 내의 ConnectionString에는 OleDB를 사용해서 해당 데이터베이스에 접근 할 수 있는 정보를 포함하고 있습니다. 이른바 Provider= 라는 설정값으로 OleDB 연결에 필요한 중간 프로바이더를 제공하고, DataFile= 이라는 설정값을 통해 실제 DB 파일의 위치를 제공 해 줍니다. 이 스트링 값을 직접 작성할 수도 있지만, 미리 AccessDataSource를 생성해서 설정 해 놓으면 간편하게 접근할 수 있습니다.

View.aspx 세부 구현 (Page_Load: 2) 조회수 갱신 부분과, 다음 게시물 번호를 얻어와서 링크를 생성하는 부분의 구현입니다.

View.aspx 세부 구현 (Page_Load: 3)

Delete.aspx – 컨트롤 설정

Delete.aspx – DB관련 개체 설정 OleDbConnection OleDbCommand ConnectionString 설정 OleDbCommand (Name) : dbCommandDeleteArticle Connection : dbConnection CommandText : delete from cstVSBoard where seq = ? and pwd = ? Parameters : 두 개 추가

Delete.aspx – 소스 편집

글 수정 – Write.aspx 의 재구성

글 수정 – Write.aspx 재구성 접근 방법 새 글 쓰기 / 수정의 구분 게시물 번호를 넘겨 받으면 수정 그렇지 않으면 새 글 작성 페이지 수정의 경우 Page_Load 시점에서 기존의 글 내용을 읽어와야 함. 데이터베이스 삽입 새 글 쓰기 / 수정을 구분해서 INSERT / UPDATE를 사용. 수정부를 직접 구현? / DataBind를 지정? 글 수정 부분의 핵심은, Write.aspx를 재사용하는데 있어 어떻게 새 글 작성과, 수정을 구분할 것인지 결정하는 것입니다. OleDBConnection 을 이용하는 것은 이미 View.aspx 에서 충분히 다루었기 때문에, 그것의 복습 과정이라고 생각하시면 됩니다.

글수정 – DB관련 개체 추가(1/2) OleDbCommand 1 (Name) : dbCommandGetArticleForModify Connection : dbConnection CommandText : SELECT writer, email, title, content, mode FROM cee_w3_board WHERE seq = ? Parameters : 하나 추가 ParameterName : seq SqlDbType : integer

글수정 – DB관련 개체 추가(2/2) OleDbCommand 2 (Name) : dbCommandModifyArticle Connection : dbConnection CommandText : UPDATE cee_w3_board SET writer = ?, email = ?, title = ?, content = ?, mode = ? WHERE seq = ? AND pwd = ? Parameters : 7개 추가

글 수정 – Write.aspx 구현 : Page_load (1)

글 수정 – Write.aspx 구현 : Page_load (2)

글 수정 – Write.aspx 세부 구현 : DataBind 사용 다음과 같이, AccessDataSource에 Update 구문을 작성하고, Web Form을 파라미터로 연결하여 데이터 바인딩을 한 뒤 손쉽게 업데이트를 할 수 있습니다.

글 수정 – Write.aspx 세부 구현 : 직접 구현시 한편, 직접 OleDbConnection개체를 생성하여 파라미터를 직접 넘겨주고, Update 구문을 수행할 수 있는 다음과 같은 구현도 가능합니다.