썸네일 [ASP.NET] 데이터 소스 컨트롤 데이터베이스에 있는 데이터를 검색하거나 조작하기 위한 도구를 말한다. 데이터 소스 컨트롤 SqlDataSource는 스스로 데이터베이스 연결에 필요한 연결 문자열을 갖고 있으며, SQL문을 실행하는 Command 객체의 기능까지 수행한다. 연결 문자열은 SqlDataSource 컨트롤의 ConnectionString 속성에 정의되고, 검색에 대한 명령은 SelectCommand 속성에 정의된다. 데이터 소스 컨트롤하기 SqlDataSource 컨트롤을 이용하여 실습용 데이터베이스 AdventureWorks2019에 연결하고 상품 테이블에서 Touring 자전거 상품을 선택하도록 설정한다. 이후 데이터 소스 컨트롤에서 얻은 결과를 사용하여 ListBox 컨트롤의 목록을 만든다. ① 새 웹 폼 만들기 Sql..
썸네일 [ASP.NET] 직접 데이터 접근(2) INSERT, UPDATE, DELETE문으로 데이터 갱신하기 위 세 가지 명령문들의 실행 과정은 SELECT문과 동일하지만 DataReader 객체를 사용하지 않는다는 것과 Command 객체를 사용하여 SQL문을 실행할 때 ExecuteNonQuery 메서드를 쓴다는 것이 다르다. 아래의 코드는 DataReader 객체를 사용하고, Command 객체를 사용하여 ExecuteQuery 메서드를 사용하는 SELECT문의 코드이다. // SELECT문 SqlDataReader rd = cmd.ExecuteReader(); ExcuteNonQuery 메서드는 질의문의 실행 결과로 질의문에 의해 영향을 받은 행의 개수를 반환하는데, 예상과 결과를 비교해야 할 경우에 사용할 수 있다. ① INSERT문 실행 ..
썸네일 [ASP.NET] 직접 데이터 접근(1) 데이터베이스와 상호작용하는 가장 쉬운 방법은 직접 데이터에 접근하는 것이다. 직접 데이터 접근 방식에서 데이터에 대한 질의는 데이터베이스로의 연결이 열리고 닫히는 사이에 이루어지기 때문에 연결 기반 데이터 접근이라고도 한다. Connection 객체 생성 일반적으로 데이터 소스에 접근할 수 있는 연결 개수에는 제한이 있으며, 개수를 넘어 요청되는 연결은 열리지 않는다. 따라서 연결이 열려 있는 시간을 짧게 하려는 노력이 필요하다. Connection 객체를 생성하고 연결을 열기 위해서는 ConnectionString 속성을 적절하게 설정해야 한다. SqlConnection conn = new SqlConnection(); conn.ConnectionString = @"Data Source=localhos..
썸네일 [ASP.NET] ADO.NET ASP.NET에서의 데이터 접근은 ADO.NET(.NET 기반 ActiveX Data Objects) 객체를 통해 이루어진다. ADO.NET을 간단히 정의하면 '.NET 응용 프로그램이 데이터베이스와 상호작용하기 위해 사용하는 기술'이라고 할 수 있다. ASP.NET의 데이터 접근 구조 ASP.NET의 데이터 접근 구조는 크게 웹 응용 프로그램, 데이터 계층, 데이터 공급자, 데이터 소스로 나누어진다. 웹 응용 프로그램 ASP.NET의 서버 컨트롤이나 개발자 코드를 통해 데이터 소스에서 전달받은 결과 집합을 표현한다. 데이터 계층 데이터 공급자들이 보낸 데이터를 웹 응용 프로그램에 전달하고, 응용 프로그램에서 전달받은 정보를 데이터 공급자들에게 전달하는 계층을 말한다. ADO.NET을 통해 하나의 데이터..
썸네일 [ASP.NET] 데이터 조작어 · SELECT문 : 하나 이상의 테이블에서 레코드를 검색하는 명령문이다. · INSERT문 : 테이블에 레코드를 추가하는 명령문이다. · UPDATE문 : 테이블의 속성 값을 변경하는 명령문이다. · DELETE문 : 테이블의 레코드를 삭제하는 명령문이다. SELECT문 - 열 선택 조건 ① 모든 열(*) 가장 단순한 형태의 SELECT문 형식은 다음과 같다. select * forom [테이블 명] 예제 데이터베이스로 설치한 Sales.Customer 테이블의 모든 열을 조회해보자. select * from Person.person; ② 필요한 열만 조회 Person.person 테이블에서 Title과 FirstName, LastName 열만 조회해보자. select title, firstname, ..
썸네일 [ASP.NET] 데이터베이스의 이해 SQL Server 설치하기 데이터베이스를 다루기 위해 SQL Server를 설치하도록 한다. SQL Server 다운로드 | Microsoft의 사이트를 들어가서 이 프로그램을 설치하기로 했다. 미디어 다운로드 -> Express Core 다운로드 이제 다운로드 폴더에 다운로드된 SQLEXPR_x64_KOR을 실행한다. [확인] - [새 SQL Server 독립 실행형 설치 또는 기존 설치에 기능 추가] - [다음]을 눌러 계속 진행한다. 명명된 인스턴스는 SQLEXPRESS로 변경하였다. [다음] [다음] - [다음] 한빛아카데미의 교재를 보면 SSMS라고 적혀있어 SSMS 설치로 해주기로 했다. SSMS 설치 버튼을 누르면 특정 사이트가 실행이 되는데 밑으로 좀 내리다 보면 이 화면에서 한국어를 클..
썸네일 [ASP.NET] 데이터베이스 관리 시스템 데이터베이스는 데이터의 집합체로, 다음과 같은 데이터들로 구성된다. · 개체 데이터 : 학생, 교수, 과목, 강의실 등과 같이 실세계에서 독립적으로 존재하는 데이터를 의미 · 관계 데이터 : 둘 이상의 개체 사이의 관련성으로 학생과 과목과의 관계인 수강 데이터, 교수와 과목과의 관계인 강의 데이터 등을 말한다. DBMS란? 방대한 데이터 집합체인 데이터베이스를 유지·관리하고 이용하는데 도움을 줄 수 있도록 특별히 설계한 소프트웨어 대표적으로 MS SQL Server, Oracle, MySQL, Sybase, Infomix, DB2 등이 있다. DBMS 사용 시의 장점 - 데이터 무결성 유지 데이터 무결성이란, '데이터의 제약 조건을 만족하는 성질'을 말한다. 또 데이터에 대한 제약 조건이란, 가게의 정책..
[ASP.NET] 애플리케이션 상태 애플리케이션 상태를 이용하면 모든 사용자가 사용할 수 있는 전역 객체를 저장할 수 있다. 애플리케이션 상태는 서버에 정보를 저장한다는 면에서, 그리고 같은 유형의 객체를 지원한다는 면에서 세션 상태와 유사하다. 그러나 애플리케이션 상태에 있는 항목에는 시간 만료가 없기 때문에 애플리케이션이나 서버가 다시 시작되기 전가지 지속된다. 사용자에 의해 특정 연산이 실행된 횟수를 세는 전역 Counter는 애플리케이션 상태를 이용하는 일반적인 예이다. 다음 코드는 Page Load 이벤트 처리기를 이용하여 페이지가 얼마나 요청되었는지를 세는 로직이다. protected void Page_Load(object sender, EventArgs e) { int count = 0; if (Application["HitC..
썸네일 [ASP.NET] 세션 상태 세션이랑 네트워크 환경에서 종보 교환을 하기 위한 논리적인 연결로, 웹 브라우저 마다 하나의 세션이 생성된다. 연결이 이루어지면 클라이언트와 서버는 연결에 대한 정보를 갖게 되는데 이를 세션 ID(식별자)라고 한다. 사용자가 세션 ID를 서버에 전달하면, ASP.NET은 대상 세션을 찾는다. 대상 세션을 통해 이전에 저장한 객체를 검색하고 이를 프로그램에 사용한다. 이러한 과정은 사용자가 적절한 세션 ID를 서버에 전달할 때 이루어진다. 서버에 세션 ID를 전달하는데는 다음 두 가지 방법이 있다. · 쿠키 사용 : default로 세션을 사용하면 자동으로 만들어지는 ASP.NET_SessionID라는 이름의 쿠키로 세션 ID가 전달된다. · URL에 포함 : 세션 ID를 URL에 포함하여 전달한다. 쿠키..
[ASP.NET] 쿠키 쿠키는 웹 브라우저가 사용하는 메모리나 웹 사용자의 하드 디스크에 저장되는 상태 정보 파일을 말한다. 쿼리 스트링과 같이 크기 제한이 있으며, 일부 웹 브라우저에서는 쿠키를 사용할 수 없다. 컴퓨터에 저장된 쿠키는 사용자가 직접 접근할 수 있기 대문에 정보의 훼손이 일어날 수 있다. 이러한 이유 때문에 비밀을 보장해야할 경우나 큰 용량의 데이터에서는 쿠키를 잘 사용하지 않는다. 쿠키를 사용하려면 먼저 using문을 사용하여 System.Net 네임스페이스를 import 해야한다. using System.Net; 쿠키를 이용하여 클라이언트에 상태 정보를 저장하려면 Response 객체의 Cookies 컬렉션을 다음과 같이 설정해야 한다. Response.Cookies["KeyWord"].Value = Se..
썸네일 [ASP.NET] 페이지들 사이의 정보 전달 뷰 상태의 가장 큰 단점은 다시 게시되는 해당 페이지에서만 사용할 수 있다는 것이다. ㅏ을ㄴ 페이지로 이동하면 뷰 상태 정보는 모두 사라진다. 이 문제를 해결하는 방법 중에서 먼저 페이지에서 다른 페이지로 정보를 전달하는 방법인 '페이지 간 게시(Cross-Page Posting)'와 '쿼리 스트링(Query String)'을 살펴보자. ① 페이지 간 게시 페이지 간 게시는 다시 게시(Postback) 기술을 다른 페이지로의 게시로 다시 확장한 것이다. Button형 컨트롤에 있는 PostBackUrl 속성에 정보를 전달할 페이지 URL을 지정하는 것으로 페이지 간 게시를 구현할 수 있다. 사용자가 PostBackUrl 속성이 설정된 버튼을 클릭하면, 현재 페이지의 입력 컨트롤에 입력된 정보를 이용하여 ..
썸네일 [ASP.NET] 뷰 상태 응용 프로그램에서 정보를 저장, 관리하는 방법을 상태관리라고 한다. ViewState 컬렉션 서버 컨트롤에 의해 자동으로 생성되는 뷰 상태 외에도 ASP.NET은 개발자가 임의로 정보를 뷰 상태에 저장할 수 있도록 Page 객체에 ViewState 컬렉션 속성을 제공한다. Note라는 이름을 갖는 항목(또는 key)에 값을 1 할당하여 ViewState 컬렉션에 저장하는 방법은 다음과 같다. ViewState["Note"] = 1; ViewState 컬렉션에 Note라는 이름의 항목이 없으면 새로운 항목으로 추가되고, 있으면 기존의 값이 1로 대치된다. ViewState 컬렉션 송성에 추가된 값은 HTML 태그로 표현된다. ViewState 컬렉션에서 값을 가져오려면 항목의 이름(key name)을 다음..