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
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 )
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
Write.aspx – 웹폼 컨트롤 속성
Write.aspx – Validation 컨트롤 속성
Validator의 종류 / 기능
Write.aspx – 데이터 컨트롤 AccessDataSource 컨트롤을 디자인 화면에서 추가시킨 뒤, 오른쪽 버튼을 누르면 “데이터 소스 구성”이 나타납니다.
Write.aspx – 데이터 소스 구성 (1/3)
Write.aspx – 데이터 소스 구성 (2/3)
Write.aspx – 데이터 소스 구성 (3/3)
Write.aspx – 데이터 컨트롤 속성 데이터 소스 구성을 통하지 않고, “데이터” - 각 쿼리 부분에 원하는 쿼리를 작성하여 설정을 완료할 수 있다. “동작” – DataSourceMode속성에는 DataSet과 DataReader가 있는데, GridView와 같은 컨트롤 에서는 DataSet을, ListBox와 같이 정렬, 페이징 등이 필요 없는 컨트롤에서는 DataReader로 설정하여 사용할 수 있다.
Write.aspx – 쿼리문 입력
Write.aspx – 파라메터 컬렉션 편집
Write.aspx – 파라메터 컬렉션 편집
Write.aspx – 코드 입력 및 완료 private void btnSubmit_Click(object sender, System.EventArgs e) { if (IsValid && Label1.Visible==false) Sqldata.InsertParameters["write"].DefaultValue = txtWriter.Text; Sqldata.InsertParameters["pwd"].DefaultValue = txtPassword.Text; Sqldata.InsertParameters["email"].DefaultValue = txtEmail.Text; Sqldata.InsertParameters["title"].DefaultValue = txtTitle.Text; Sqldata.InsertParameters["writedate"].DefaultValue = DateTime.Now.ToString(); Sqldata.InsertParameters["content"].DefaultValue = txtContent.Text; Sqldata.InsertParameters["mode"].DefaultValue = rdoMode.SelectedIndex.ToString(); Sqldata.Insert(); Response.Redirect("list.aspx"); } 만약 Parameter 연결을 했을 경우, 다음과 같이 짧은 코드로 완성이 가능하다. protected void Button_Submit_Click(object sender, EventArgs e) if(IsValid) // 글 삽입 모드
List.aspx – 개발 접근 순서 DB에 저장된 게시물 목록을 가져오고, 각 게시물과 연결을 어떻게 해야 할 것인가? DataSource 선택 / 컨트롤 배치 DB에 저장된 게시물 목록을 가져오고, 각 게시물과 연결을 어떻게 해야 할 것인가? 페이지 GridView – Access(or Sql)DataSource 연결 Paging – GridView 기본 사용? 직접 구현? 각 게시물 연결 게시물을 보기 위해 TemplateItem을 구현 작성자 메일 연결을 구현
List.aspx – 컨트롤 설정
List.aspx – DataSource : Select 구문
List.aspx – GridView 속성
List.aspx – GridView 필드 설정
List.aspx – 데이터 컨트롤 속성
List.aspx – 데이터 컨트롤 속성
List.aspx – 데이터 컨트롤 속성
List.aspx – 자동 서식 지정
List.aspx – 호출되는 메서드 작성 public partial class List : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) } protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) Response.Redirect("view.aspx?id=" + GridView1.SelectedValue.ToString());
View.aspx – 컨트롤 설정
View.aspx 구현 접근 과정
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)
View.aspx 세부 구현 (Page_Load: 2)
Delete.aspx – 컨트롤 설정
Delete.aspx – DB관련 개체 설정
Delete.aspx – DB관련 개체 설정
Delete.aspx – DB관련 개체 설정
Delete.aspx – 소스 편집
글 수정 – Write.aspx 의 재구성
글 수정 – Write.aspx 재구성 접근 방법 새 글 쓰기 / 수정의 구분 게시물 번호를 넘겨 받으면 수정 그렇지 않으면 새 글 작성 페이지 수정의 경우 Page_Load 시점에서 기존의 글 내용을 읽어와야 함. 데이터베이스 삽입 새 글 쓰기 / 수정을 구분해서 INSERT / UPDATE를 사용. 수정부를 직접 구현? / DataBind를 지정?
글수정 – 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 사용
글 수정 – Write.aspx
글 수정 – Write.aspx