500 likes | 516 Views
3 주 실습강의. ASP.NET : Database 접근 2008 컴퓨터공학실험 (Ⅰ). Preface. 폼의 유효성 검사 : Field Validation RequiredFieldValidator RegularExpressionValidator ValidationSummary ASP.NET 에서 Access DB (MDB) 연결 / 조작 AccessDataSource (or SqlDataSource) GridView
E N D
3주 실습강의 ASP.NET :Database 접근 2008 컴퓨터공학실험(Ⅰ)
Preface • 폼의 유효성 검사 : Field Validation • 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 – 데이터 컨트롤 속성 데이터 소스 구성을 통하지 않고, “데이터” - 각 쿼리 부분에 원하는 쿼리를 작성하여 설정을 완료할 수 있다. “동작”– DataSourceMode속성에는 DataSet과 DataReader가 있는데, GridView와 같은 컨트롤 에서는 DataSet을, ListBox와 같이 정렬, 페이징 등이 필요 없는 컨트롤에서는 DataReader로 설정하여 사용할 수 있다.
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) // 글 삽입 모드 { Sqldata.Insert(); Response.Redirect("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 – DB관련 개체 설정 • OleDbConnection 하나 • ConnectionString 설정 • OleDbCommand 1 • (Name) : dbCommandGetArticle • Connection : dbConnection • CommandText :SELECT writer,email,title,mode,content,readed,writeDate FROM cee_w3_board WHERE seq = ? • Parameters : 하나 추가ParameterName : seqSqlDbType : integer
View.aspx – DB관련 개체 설정 • OleDbCommand 2 • (Name) : dbCommandUpdateReadCount • Connection : dbConnection • CommandText :UPDATE cee_w3_board SET readed=readed+1 WHERE seq = ? • Parameters : 하나 추가ParameterName : seqSqlDbType : 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 :seqSqlDbType : 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 : seqSqlDbType : integer
글수정 – DB관련 개체 추가(1/2) • OleDbCommand 1 • (Name) : dbCommandGetArticleForModify • Connection : dbConnection • CommandText :SELECT writer, email, title, content, mode FROM cee_w3_board WHERE seq = ? • Parameters : 하나 추가ParameterName : seqSqlDbType : 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개 추가