.NET Framework 데이터 공급자(ADO.NET)

.NET Framework 데이터 공급자는 데이터베이스에 연결하고 명령을 실행하며 결과를 검색하는 데 사용됩니다.검색된 결과는 곧바로 처리되거나 DataSet에 저장되어 필요한 경우 사용자에게 노출되거나 여러 소스의 데이터와 함께 사용되거나 계층 간에 원격으로 사용됩니다..NET Framework 데이터 공급자는 간단하여 데이터 소스와 사용자 코드 간에 최소의 계층을 만들며 기능 저하 없이 성능을 향상시킵니다.

다음 표에서는 .NET Framework에 포함되어 있는 데이터 공급자를 보여 줍니다.

.NET Framework 데이터 공급자

설명

.NET Framework Data Provider for SQL Server

Microsoft SQL Server 버전 7.0 이상에 대한 데이터 액세스를 제공합니다.System.Data.SqlClient 네임스페이스를 사용합니다.

.NET Framework Data Provider for OLE DB

OLE DB를 사용하여 노출된 데이터 소스에서 사용합니다.System.Data.OleDb 네임스페이스를 사용합니다.

.NET Framework Data Provider for ODBC

OLE DB를 사용하여 노출된 데이터 소스에서 사용합니다.System.Data.Odbc 네임스페이스를 사용합니다.

.NET Framework Data Provider for Oracle

Oracle 데이터 소스에서 사용합니다..NET Framework Data Provider for Oracle은 Oracle 클라이언트 소프트웨어 버전 8.1.7 이상을 지원하며 System.Data.OracleClient 네임스페이스를 사용합니다.

EntityClient 공급자

EDM(엔터티 데이터 모델) 응용 프로그램에 대한 데이터 액세스를 제공합니다.System.Data.EntityClient 네임스페이스를 사용합니다.

.NET Framework 데이터 공급자의 핵심 개체

다음 표에서는 .NET Framework 데이터 공급자를 구성하는 네 가지 핵심 개체에 대해 간략하게 설명합니다.

개체

설명

Connection

특정 데이터 소스에 연결합니다.모든 Connection 개체의 기본 클래스는 DbConnection 클래스입니다.

Command

데이터 소스에 대해 명령을 실행합니다.Parameters를 노출하고 Connection의 Transaction 범위 내에서 실행할 수 있습니다.모든 Command 개체의 기본 클래스는 DbCommand 클래스입니다.

DataReader

데이터 소스에서 앞으로만 이동 가능한 읽기 전용 데이터 스트림을 읽습니다.모든 DataReader 개체의 기본 클래스는 DbDataReader 클래스입니다.

DataAdapter

DataSet을 채우고 업데이트 내용을 데이터 소스에 적용합니다.모든 DataAdapter 개체의 기본 클래스는 DbDataAdapter 클래스입니다.

.NET Framework 데이터 공급자에는 이 문서의 이전 표에 나와 있는 핵심 클래스뿐만 아니라 다음 표에 나열된 클래스도 포함되어 있습니다.

개체

설명

Transaction

데이터 소스의 트랜잭션에 명령을 인리스트먼트합니다.모든 Transaction 개체의 기본 클래스는 DbTransaction 클래스입니다.ADO.NET에서는 System.Transactions 네임스페이스에 있는 클래스를 사용하여 트랜잭션에 대한 지원을 제공합니다.

CommandBuilder

DataAdapter의 명령 속성을 자동으로 생성하거나 저장 프로시저에서 매개 변수 정보를 파생하여 Command 개체의 Parameters 컬렉션을 채우는 도우미 개체입니다.모든 CommandBuilder 개체의 기본 클래스는 DbCommandBuilder 클래스입니다.

ConnectionStringBuilder

Connection 개체에서 사용하는 연결 문자열의 내용을 간단히 만들고 관리할 수 있도록 하는 도우미 개체입니다.모든 ConnectionStringBuilder 개체의 기본 클래스는 DbConnectionStringBuilder 클래스입니다.

Parameter

명령과 저장 프로시저에 대한 입력, 출력 및 반환 값 매개 변수를 정의합니다.모든 Parameter 개체의 기본 클래스는 DbParameter 클래스입니다.

Exception

데이터 소스에서 오류가 발생하면 반환됩니다.클라이언트에서 오류가 발생하는 경우 .NET Framework 데이터 공급자는 .NET Framework 예외를 throw합니다.모든 Exception 개체의 기본 클래스는 DbException 클래스입니다.

Error

데이터 소스에서 반환한 경고 또는 오류에서 정보를 노출시킵니다.

ClientPermission

.NET Framework 데이터 공급자에 코드 액세스 보안 특성을 제공합니다.모든 ClientPermission 개체의 기본 클래스는 DBDataPermission 클래스입니다.

.NET Framework Data Provider for SQL Server(SqlClient)

.NET Framework Data Provider for SQL Server(SqlClient)에서는 고유 프로토콜을 사용하여 SQL Server와 통신합니다.이 공급자는 OLE DB 또는 ODBC(Open Database Connectivity) 계층을 추가하지 않고 SQL Server에 직접 액세스하도록 최적화되어 있어 간단하며 효율적으로 작동합니다.다음은 .NET Framework Data Provider for SQL Server와 .NET Framework Data Provider for OLE DB를 비교한 그림입니다..NET Framework Data Provider for OLE DB는 연결 풀링 및 트랜잭션 서비스를 제공하는 OLE DB 서비스 구성 요소와 데이터 소스에 대한 OLE DB 공급자 모두를 통해 OLE DB 데이터 소스와 통신합니다.

참고참고

.NET Framework Data Provider for ODBC 아키텍처는 ODBC 서비스 구성 요소를 호출하는 등 .NET Framework Data Provider for OLE DB 아키텍처와 비슷한 부분이 있습니다.

dnprdnshort Data Provider for ssNoVersion와 dnprdnshort Data Provider for OLE DB 비교

데이터 공급자

.NET Framework Data Provider for SQL Server를 사용하려면 SQL Server 7.0 이상 버전에 액세스해야 합니다..NET Framework Data Provider for SQL Server 클래스는 System.Data.SqlClient 네임스페이스에 있습니다.이전 버전의 SQL Server에서는 .NET Framework Data Provider for OLE DB를 SQL Server OLE DB provider System.Data.OleDb와 함께 사용하십시오.

.NET Framework Data Provider for SQL Server는 로컬 및 분산 트랜잭션을 모두 지원합니다.분산 트랜잭션의 경우, 기본적으로 .NET Framework Data Provider for SQL Server는 트랜잭션에 자동으로 인리스트먼트되고 Windows Component Services 또는 System.Transactions로부터 트랜잭션 세부 정보를 얻습니다.자세한 내용은 트랜잭션 및 동시성(ADO.NET)을 참조하십시오.

다음 코드 예제에서는 System.Data.SqlClient 네임스페이스를 응용 프로그램에 포함하는 방법을 보여 줍니다.

Imports System.Data.SqlClient
using System.Data.SqlClient;

.NET Framework Data Provider for OLE DB

.NET Framework Data Provider for OLE DB(OleDb)는 COM interop를 통해 네이티브 OLE DB를 사용하여 데이터 액세스를 활성화합니다..NET Framework Data Provider for OLE DB는 로컬 및 분산 트랜잭션을 모두 지원합니다.분산 트랜잭션의 경우, 기본적으로 .NET Framework Data Provider for OLE DB는 트랜잭션에 자동으로 인리스트먼트되고 Windows 2000 Component Services로부터 트랜잭션 세부 정보를 얻습니다.자세한 내용은 트랜잭션 및 동시성(ADO.NET)을 참조하십시오.

다음 표에서는 ADO.NET을 사용하여 테스트한 공급자를 보여 줍니다.

드라이버

공급자

SQLOLEDB

Microsoft OLE DB provider for SQL Server

MSDAORA

Microsoft OLE DB provider for Oracle

Microsoft.Jet.OLEDB.4.0

OLE DB provider for Microsoft Jet

참고참고

ASP.NET 응용 프로그램과 같은 다중 스레드 응용 프로그램의 경우 Access(Jet) 데이터베이스를 데이터 소스로 사용하지 않는 것이 좋습니다.ASP.NET 응용 프로그램의 데이터 소스로 Jet을 사용하게 되면 ASP.NET 응용 프로그램에서 Access 데이터베이스에 연결할 때 연결 문제가 발생합니다.ASP.NET 및 Access(Jet) 데이터베이스 사용과 관련된 연결 문제 해결 방법은 Microsoft 기술 자료에 있는 기술 자료 Q316675, "PRB: ASP.NET에서 Access 데이터베이스에 연결할 수 없다."를 참조하십시오.

.NET Framework Data Provider for OLE DB는 OLE DB 버전 2.5 인터페이스를 지원하지 않습니다.OLE DB 2.5 인터페이스 지원이 필요한 OLE DB 공급자는 .NET Framework Data Provider for OLE DB에서 제대로 작동하지 않습니다.여기에는 Microsoft OLE DB Provider for Exchange와 Microsoft OLE DB Provider for Internet Publishing이 포함됩니다.

.NET Framework Data Provider for OLE DB는 MSDASQL(OLE DB Provider for ODBC)과 같이 사용할 수 없습니다.ADO.NET을 사용하여 ODBC 데이터 소스에 액세스하려면 .NET Framework Data Provider for ODBC를 사용하십시오.

.NET Framework Data Provider for OLE DB 클래스는 System.Data.OleDb 네임스페이스에 있습니다.다음 코드 예제에서는 System.Data.OleDb 네임스페이스를 응용 프로그램에 포함하는 방법을 보여 줍니다.

Imports System.Data.OleDb
using System.Data.OleDb;
참고참고

.NET Framework Data Provider for OLE DB에는 MDAC 2.6 이상 버전이 필요하며 MDAC 2.8 서비스 팩 1(SP1)을 권장합니다.Data Access and Storage Developer Center에서 MDAC 2.8 SP1을 다운로드할 수 있습니다.

.NET Framework Data Provider for ODBC

.NET Framework Data Provider for ODBC(Odbc)는 네이티브 ODBC DM(드라이버 관리자)을 사용하여 데이터 액세스를 활성화합니다.ODBC 데이터 공급자는 로컬 및 분산 트랜잭션을 모두 지원합니다.분산 트랜잭션의 경우, 기본적으로 ODBC 데이터 공급자는 트랜잭션에 자동으로 인리스트먼트되고 Windows 2000 Component Services로부터 트랜잭션 세부 정보를 얻습니다.자세한 내용은 트랜잭션 및 동시성(ADO.NET)을 참조하십시오.

다음 표에서는 ADO.NET을 사용하여 테스트한 ODBC 드라이버를 보여 줍니다.

드라이버

SQL Server

Microsoft ODBC for Oracle

Microsoft Access Driver(*.mdb)

.NET Framework Data Provider for ODBC 클래스는 System.Data.Odbc 네임스페이스에 있습니다.

다음 코드 예제에서는 System.Data.Odbc 네임스페이스를 응용 프로그램에 포함하는 방법을 보여 줍니다.

Imports System.Data.Odbc
using System.Data.Odbc;
참고참고

.NET Framework Data Provider for ODBC는 MDAC 2.6 이상이 필요하며 MDAC 2.8 SP1을 사용하는 것이 좋습니다.Data Access and Storage Developer Center에서 MDAC 2.8 SP1을 다운로드할 수 있습니다.

.NET Framework Data Provider for Oracle

.NET Framework Data Provider for Oracle(OracleClient)을 사용하면 Oracle 클라이언트 연결 소프트웨어를 통해 Oracle 데이터 소스에 액세스할 수 있습니다.이 데이터 공급자는 Oracle 클라이언트 소프트웨어 버전 8.1.7 이상을 지원합니다.또한 로컬 및 분산 트랜잭션을 모두 지원합니다.자세한 내용은 트랜잭션 및 동시성(ADO.NET)을 참조하십시오.

.NET Framework Data Provider for Oracle을 사용하여 Oracle 데이터 소스에 연결하려면 시스템에 Oracle 클라이언트 소프트웨어 8.1.7 이상 버전이 있어야 합니다.

.NET Framework Data Provider for Oracle 클래스는 System.Data.OracleClient 네임스페이스에 있으며 System.Data.OracleClient.dll 어셈블리에 포함되어 있습니다.데이터 공급자를 사용하는 응용 프로그램을 컴파일할 때 System.Data.dll과 System.Data.OracleClient.dll을 모두 참조해야 합니다.

다음 코드 예제에서는 System.Data.OracleClient 네임스페이스를 응용 프로그램에 포함하는 방법을 보여 줍니다.

Imports System.Data
Imports System.Data.OracleClient
using System.Data;
using System.Data.OracleClient;

.NET Framework 데이터 공급자 선택

.NET Framework 데이터 공급자를 선택하면 응용 프로그램의 디자인 및 데이터 소스에 따라 응용 프로그램의 성능, 기능 및 무결성이 향상될 수 있습니다.다음 표에서는 각 .NET Framework 데이터 공급자의 장점 및 제한 사항에 대해 설명합니다.

공급자

참고

.NET Framework Data Provider for SQL Server

Microsoft SQL Server 7.0 이상 버전을 사용하는 중간 계층 응용 프로그램에 권장됩니다.

MSDE(Microsoft Database Engine) 또는 SQL Server 7.0 이상 버전을 사용하는 단일 계층 응용 프로그램에 권장됩니다.

SQLOLEDB(OLE DB provider for SQL Server)를 .NET Framework Data Provider for OLE DB와 함께 사용하는 경우에 권장됩니다.

SQL Server 6.5 이하 버전에서는 .NET Framework Data Provider for OLE DB와 함께 OLE DB provider for SQL Server를 사용해야 합니다.

.NET Framework Data Provider for OLE DB

SQL Server 6.5 이하 버전을 사용하는 중간 계층 응용 프로그램에 권장됩니다.

SQL Server 7.0 이상 버전의 경우 .NET Framework Data Provider for SQL Server가 권장됩니다.

또한 Microsoft Access 데이터베이스를 사용하는 단일 계층 응용 프로그램에도 권장됩니다.중간 계층 응용 프로그램에는 Access 데이터베이스를 사용하지 않는 것이 좋습니다.

.NET Framework Data Provider for ODBC

ODBC 데이터 소스를 사용하는 중간 및 단일 계층 응용 프로그램에 권장됩니다.

.NET Framework Data Provider for Oracle

Oracle 데이터 소스를 사용하는 중간 및 단일 계층 응용 프로그램에 권장됩니다.

EntityClient 공급자

EntityClient 공급자는 EDM(엔터티 데이터 모델)을 기반으로 데이터에 액세스하는 데 사용됩니다.EntityClient 공급자는 다른 .NET Framework 데이터 공급자와 달리 데이터 소스와 직접 상호 작용하지 않고대신 Entity SQL을 사용하여 기본 데이터 공급자와 통신합니다.자세한 내용은 EntityClient and Entity SQL을 참조하십시오.

참고 항목

기타 리소스

ADO.NET 개요

ADO.NET에서 데이터 검색 및 수정