다음을 통해 공유


데이터 소스 컨트롤 개요

업데이트: 2007년 11월

ASP.NET에는 데이터베이스, XML 파일 또는 중간 계층 비즈니스 개체 등과 같이 다양한 형식의 데이터 소스로 작업할 수 있도록 하는 데이터 소스 컨트롤이 포함되어 있습니다. 데이터 소스 컨트롤을 사용하면 별도의 코드 없이 데이터 소스에 연결하고 데이터를 검색하여 다른 컨트롤을 데이터 소스에 바인딩할 수 있도록 만들 수 있습니다. 또한 데이터를 수정할 수도 있습니다.

이 항목에서는 ASP.NET의 다양한 데이터 소스 컨트롤 형식에 대해 설명합니다. 데이터 소스 컨트롤 모델은 확장 가능하므로 다른 데이터 소스와 상호 작용하거나 기존 데이터 소스에 추가 기능을 제공하는 데이터 소스 컨트롤을 사용자가 직접 만들 수도 있습니다.

데이터 소스 컨트롤 비교

.NET Framework에는 다양한 데이터 바인딩 시나리오를 지원하는 데이터 소스 컨트롤이 포함되어 있습니다. 다음 표에서는 기본 제공된 데이터 소스 컨트롤에 대해 설명합니다. 데이터 소스 컨트롤의 각 형식에 대한 자세한 내용은 이 항목의 뒷부분에 나옵니다.

데이터 소스 컨트롤

설명

LinqDataSource

선언 태그를 통해 ASP.NET 웹 페이지에서 LINQ(통합 언어 쿼리)를 사용하여 데이터 개체의 데이터를 검색 및 수정할 수 있도록 합니다. 선택, 업데이트, 삽입 및 삭제 명령의 자동 생성을 지원합니다. 또한 이 컨트롤은 정렬, 필터링 및 페이징 기능을 지원합니다.

EntityDataSource

EDM(엔터티 데이터 모델) 기반 데이터에 바인딩할 수 있습니다. 업데이트, 삽입, 삭제 및 선택 명령의 자동 생성을 지원합니다. 또한 이 컨트롤은 정렬, 필터링 및 페이징 기능을 지원합니다.

ObjectDataSource

이 컨트롤을 사용하면 비즈니스 개체 또는 다른 클래스로 작업하고 중간 계층 개체를 사용하여 데이터를 관리하는 웹 응용 프로그램을 만들 수 있습니다. 다른 데이터 소스 컨트롤에서 사용할 수 없는 고급 정렬 및 페이징 시나리오를 지원합니다.

SqlDataSource

이 컨트롤을 사용하면 Microsoft SQL Server, OLE DB, ODBC 또는 Oracle 데이터베이스로 작업할 수 있습니다. SQL Server와 함께 사용하면 고급 캐싱 기능을 지원합니다. 또한 이 컨트롤은 데이터가 DataSet 개체로 반환되는 경우 정렬, 필터링 및 페이징 기능을 지원합니다.

AccessDataSource

이 컨트롤을 사용하면 Microsoft Access 데이터베이스로 작업할 수 있습니다. 데이터가 DataSet 개체로 반환되는 경우 정렬, 필터링 및 페이징 기능을 지원합니다.

XmlDataSource

이 컨트롤을 사용하면 특히 TreeView 또는 Menu 컨트롤 같이 계층 구조를 사용하는 ASP.NET 서버 컨트롤에 대해 XML 파일로 작업할 수 있습니다. XPath 식을 사용하여 필터링 기능을 지원하고 XSLT 변환을 데이터에 적용할 수 있도록 합니다. XmlDataSource를 사용하면 변경 내용을 전체 XML 문서에 저장하여 데이터를 업데이트할 수 있습니다.

SiteMapDataSource

ASP.NET 사이트 탐색과 함께 사용됩니다. 자세한 내용은 ASP.NET 사이트 탐색 개요를 참조하십시오.

LinqDataSource 컨트롤

LinqDataSource 컨트롤을 사용하면 ASP.NET 페이지에서 LINQ를 사용하여 데이터베이스 테이블 또는 메모리 내 데이터 수집의 데이터를 검색할 수 있습니다. 선언 태그를 사용하여 데이터를 검색, 필터링, 정렬 및 그룹화하는 데 필요한 모든 조건을 작성할 수 있습니다. 또한 SQL 데이터베이스 테이블의 데이터를 검색하는 경우에는 업데이트, 삽입 및 삭제 작업을 처리할 수 있도록 LinqDataSource 컨트롤을 구성할 수 있습니다. 이를 수행하려면 이러한 작업을 수행하는 SQL 명령을 작성하면 됩니다. LinqDataSource 컨트롤을 사용하면 다른 데이터 소스 컨트롤에서 동일한 작업을 수행하는 것에 비해 데이터 작업에 필요한 코드의 양을 더 줄일 수 있습니다.

자세한 내용은 LinqDataSource 웹 서버 컨트롤 개요를 참조하십시오.

SqlDataSource 컨트롤

SqlDataSource 컨트롤은 SQL 명령을 사용하여 데이터를 검색하고 수정합니다. SqlDataSource 컨트롤은 Microsoft SQL Server, OLE DB, ODBC 및 Oracle 데이터베이스에서 사용됩니다.

SqlDataSource 컨트롤은 결과를 DataReader 또는 DataSet 개체로 반환할 수 있습니다. 결과가 DataSet으로 반환될 경우에는 정렬, 필터링 및 캐싱 기능을 지원합니다. 또한 Microsoft SQL Server로 작업하면 데이터베이스가 변경될 경우 SqlCacheDependency 개체를 사용하여 캐시 결과를 무효화할 수 있다는 또 다른 이점이 있습니다.

자세한 내용은 SqlDataSource 웹 서버 컨트롤 개요를 참조하십시오.

EntityDataSource 컨트롤

EntityDataSource 컨트롤은 EDM(엔터티 데이터 모델)에 따라 데이터 바인딩 시나리오를 지원합니다. 이 데이터 사양에서는 데이터를 엔터티와 관계의 집합으로 표현합니다. Entity Framework에서는 개체 관계형 매핑 및 ADO.NET 데이터 서비스 등의 기타 시나리오에서 EDM을 사용합니다. EntityDataSource 컨트롤은 eSQL(Entity-SQL)을 쿼리 언어로 지원하고, ObjectQuery<T> 클래스가 노출하는 쿼리 사양을 지원합니다.

자세한 내용은 EntityDataSource 웹 서버 컨트롤 개요를 참조하십시오.

ObjectDataSource 컨트롤

ObjectDataSource 컨트롤은 중간 계층 비즈니스 개체를 사용하여 데이터를 관리하는 웹 응용 프로그램에서 비즈니스 개체 또는 다른 클래스와 함께 사용됩니다. 이 컨트롤은 데이터를 검색하거나 수정하기 위해 하나 이상의 메서드를 구현하는 개체와 상호 작용하도록 되어 있습니다. 데이터 바인딩된 컨트롤이 ObjectDataSource 컨트롤과 상호 작용하여 데이터를 검색하거나 수정하는 경우 ObjectDataSource 컨트롤은 메서드 호출에서 바인딩 컨트롤의 값을 소스 개체에 매개 변수로 전달합니다.

소스 개체의 데이터 검색 메서드는 DataSet, DataTable 또는 DataView 개체나 IEnumerable 인터페이스를 구현하는 개체를 반환해야 합니다. 데이터가 DataSet, DataTable 또는 DataView 개체로 반환될 경우 ObjectDataSource 컨트롤에서 데이터를 캐시하고 필터링할 수 있습니다. 소스 개체에서 ObjectDataSource 컨트롤의 페이지 크기 및 레코드 인덱스 정보를 허용할 경우에는 고급 페이징 시나리오도 구현할 수 있습니다.

자세한 내용은 ObjectDataSource 웹 서버 컨트롤 개요를 참조하십시오.

XmlDataSource 컨트롤

XmlDataSource 컨트롤은 TreeViewMenu 컨트롤 등의 컨트롤을 사용하여 XML 데이터로 작업할 수 있도록 이러한 데이터를 읽고 씁니다. XmlDataSource 컨트롤은 XML 파일 또는 XML 문자열을 읽을 수 있습니다. 이 컨트롤을 XML 파일과 함께 사용 중인 경우에는 수정된 XML을 다시 소스 파일에 쓸 수 있습니다. 데이터를 기술하는 스키마를 사용할 수 있는 경우에는 XmlDataSource 컨트롤에서 스키마를 사용하여 형식화된 멤버를 통해 데이터를 노출할 수 있습니다.

XML 데이터에 XSLT 변환을 적용하여 XML 파일의 원시 데이터 형식을 XML 데이터에 바인딩할 컨트롤에 맞게 더욱 적합한 형식으로 재구성할 수 있습니다.

또한 XML 데이터에 XPath 식을 적용할 수 있습니다. 이렇게 하면 XML 트리의 특정 노드만 반환하고, 특정 값을 포함하는 노드를 검색하도록 XML 데이터를 필터링할 수 있습니다. XPath 식을 사용하면 새 데이터를 삽입할 수 없습니다.

자세한 내용은 XmlDataSource 웹 서버 컨트롤 개요를 참조하십시오.

AccessDataSource 컨트롤

AccessDataSource 컨트롤은 SqlDataSource 컨트롤의 특수 버전으로, 특히 Microsoft Access .mdb 파일과 함께 사용하도록 되어 있습니다. SqlDataSource 컨트롤과 마찬가지로 SQL 문을 사용하여 컨트롤의 데이터 페치 및 검색 방식을 정의할 수 있습니다.

자세한 내용은 AccessDataSource 웹 서버 컨트롤 개요를 참조하십시오.

SiteMapDataSource 컨트롤

SiteMapDataSource 컨트롤은 ASP.NET 사이트 맵과 함께 사용되며 사이트 탐색 데이터를 제공합니다. 이 컨트롤은 대부분 Menu 컨트롤과 함께 사용됩니다. 또한 SiteMapDataSource 컨트롤은 TreeView 또는 DropDownList 컨트롤처럼 탐색용으로 디자인되지 않은 웹 서버 컨트롤에 사이트 맵 데이터를 사용하여 사이트 탐색을 사용자 지정하려는 경우에 유용합니다.

자세한 내용은 SiteMapDataSource 웹 서버 컨트롤 개요를 참조하십시오.

참고 항목

개념

ASP.NET 데이터 액세스 개요

데이터베이스에 바인딩

데이터 소스 컨트롤에 매개 변수 사용