[ASP.NET] 데이터 소스 컨트롤

데이터베이스에 있는 데이터를 검색하거나 조작하기 위한 도구를 말한다. 데이터 소스 컨트롤 SqlDataSource는 스스로 데이터베이스 연결에 필요한 연결 문자열을 갖고 있으며, SQL문을 실행하는 Command 객체의 기능까지 수행한다.

연결 문자열은 SqlDataSource 컨트롤의 ConnectionString 속성에 정의되고, 검색에 대한 명령은 SelectCommand 속성에 정의된다. 

 

데이터 소스 컨트롤하기

SqlDataSource 컨트롤을 이용하여 실습용 데이터베이스 AdventureWorks2019에 연결하고 상품 테이블에서 Touring 자전거 상품을 선택하도록 설정한다. 이후 데이터 소스 컨트롤에서 얻은 결과를 사용하여 ListBox 컨트롤의 목록을 만든다.

 

① 새 웹 폼 만들기

SqlDataSourceTest.aspx를 만든다.

② 웹 폼에 SqlDataSource 컨트롤 넣기

도구 상자의 [데이터] 탭에 있는 SqlDataSource 컨트롤을 웹 폼에 드래그 앤 드롭한 후 컨트롤의 id를 dsrcProduct로 변경한다. 데이터 소스 컨트롤인 SqlDataSource 컨트롤의 스마트 태그에서 [데이터 소스 구성]을 선택하여 데이터 소스 구성 대화상자를 연다.

③ [데이터 소스 구성] 대화상자에서 새 연결 추가

기존 연결을 할 수도 있지만 실습을 위해 새 연결을 추가한다. [데이터 소스 구성] 대화상자의 [새 연결] 버튼을 클릭하여 [연결 추가] 대화상자를 연다. [연결 추가] 대화상자의 항목을 다음과 같이 설정한 후 [확인] 버튼을 클릭한다.

· 서버 이름 : .\SQLEXPRESS

· 서버에 로그온 : Windows 인증

· 데이터베이스 이름 선택 또는 입력 : Adventure2019

④ 연결 문자열 구성 파일에 저장

[데이터 소스 구성] 대화상자에서 [다음] 버튼을 클릭하면 구성 파일(web.config)에 연결 문자열을 저장할 것인지를 묻는다. 데이터 소스 구성 대화상자에서 제시하는 연결 문자열 이름을 그대로 두고 [다음] 버튼을 클릭한다.

⑤ SELECT문 구성

SELECT문을 구성하는 단계다. 여기서는 [사용자 지정 SQL문 또는 저장 프로시저에 지정]을 선택하여 SELECT문을 작성한다. [사용자 지정 SQL문 또는 저장 프로시저에 지정] 옵션을 선택하고 [다음] 버튼을 클릭한다.

⑥ 쿼리 작성기로 SELECT문 작성

사용자 지정 문 작성 화면에서 [SELECT] 탭을 선택하고 [쿼리 작성기] 버튼을 클릭하여 [쿼리 작성기] 창을 연다. [쿼리 작성기] 창이 열린 후 테이블 추가 대화상자가 나타난다. Product(Production)를 선택한 후 [추가] 버튼과 [닫기] 버튼을 차례로 클릭한다.

쿼리 작성기 창에 추가된 Product 테이블에서 ProductID 열과 Name 열을 선택한다.

(나는 선택만 하면 자꾸 창이 닫혀서 그냥 SQL문에 입력해주었다.

SELECT ProductID, Name FROM Production.Product WHERE (ProductSubCategoryID=1);
// 창이 닫히지 않는 다면 쿼리 작성기 창에 조건절만 써주면 된다.

SQL문을 손수 적고 쿼리 작성기 버튼을 눌러 쿼리 실행 버튼을 누른 경우

⑦ 쿼리 테스트

[쿼리 테스트] 버튼을 클릭하여 데이터를 다시 한 번 조회해본다. 정상적인 결과나 나타나면 [마침] 버튼을 클릭하여 데이터 소스 구성 대화상자를 닫는다.

⑧ 웹 폼에 ListBox 컨트롤 추가

데이터 소스 컨트롤로부터 가져온 데이터를 출력한 ListBox 컨트롤을 도구 상자에서 선택하여 웹 폼에 드래그하여 배치하고 ID를 lstProduct로 변경한다. ListBox 스마트 태그에서 [데이터 소스 선택]을 선택하여 데이터 소스 구성 마법사를 연다.

⑨ ListBox 컨트롤의 데이터 소스 구성 마법사 설정하기

[데이터 소스 구성 마법사] 대화상자가 열리면 항목을 다음과 같이 설정하고 [확인] 버튼을 클릭한다.

· 데이터 소스 선택 : dsrcProduct 선택

· ListBox에 표시할 데이터 필드 선택 : Name 선택

· ListBox의 값에 대한 데이터 필드 선택 : ProductID 선택

이 과정과 같이 데이터 소스와 웹 컨트롤을 연결하는 과정을 데이터 바인딩이라고 한다.

⑩ 결과 확인하기

클릭과 몇 번의 짧은 입력으로 만들어진 페이지는 이전 글에서 만들었던 FillAllProductList 메서드와 동일한 기능을 하고 있음을 확인할 수 있다. 컴파일을 시켜보자.

'ASP.NET 4.0' 카테고리의 다른 글

[ASP.NET] 직접 데이터 접근(2)  (0) 2022.01.10
[ASP.NET] 직접 데이터 접근(1)  (0) 2022.01.05
[ASP.NET] ADO.NET  (0) 2022.01.05
[ASP.NET] 데이터 조작어  (0) 2022.01.04
[ASP.NET] 데이터베이스의 이해  (0) 2022.01.04

댓글