Udostępnij za pośrednictwem


Dostawcy danych programu .NET Framework

Dostawca danych programu .NET Framework służy do nawiązywania połączenia z bazą danych, wykonywania poleceń i pobierania wyników. Te wyniki są przetwarzane bezpośrednio, umieszczane w obiekcie DataSet w celu udostępnienia użytkownikowi, łączone z danymi z różnych źródeł lub przesyłane zdalnie między warstwami, zależnie od potrzeb. Dostawcy danych programu .NET Framework są uproszczoni, tworząc minimalną warstwę między źródłem danych a kodem, zwiększając wydajność bez poświęcania funkcji.

W poniższej tabeli wymieniono dostawców danych uwzględnionych w programie .NET Framework.

dostawca danych programu .NET Framework opis
Dostawca danych .NET Framework dla SQL Server Zapewnia dostęp do danych dla programu Microsoft SQL Server. Używa przestrzeni nazw System.Data.SqlClient.
.NET Framework Dostawca danych dla OLE DB W przypadku źródeł danych udostępnianych przy użyciu OLE DB. Korzysta z przestrzeni nazw System.Data.OleDb.
.NET Framework Dostawca danych dla ODBC W przypadku źródeł danych udostępnianych przy użyciu ODBC. Używa przestrzeni nazw System.Data.Odbc.
.NET Framework Dostawca danych dla Oracle W przypadku źródeł danych Oracle. Dostawca danych .NET Framework dla Oracle obsługuje oprogramowanie klienckie Oracle w wersji 8.1.7 lub nowszej i używa przestrzeni nazw System.Data.OracleClient.
Dostawca EntityClient Zapewnia dostęp do danych dla aplikacji modelu EDM (Entity Data Model). Używa przestrzeni nazw System.Data.EntityClient.
.NET Framework Dostawca danych dla programu SQL Server Compact 4.0. Zapewnia dostęp do danych dla programu Microsoft SQL Server Compact 4.0. Używa przestrzeni nazw System.Data.SqlServerCe.

Podstawowe obiekty dostawców danych platformy .NET Framework

W poniższej tabeli przedstawiono cztery podstawowe obiekty tworzące dostawcę danych programu .NET Framework.

Obiekt opis
Connection Ustanawia połączenie z określonym źródłem danych. Klasa bazowa dla wszystkich Connection obiektów jest klasą DbConnection .
Command Wykonuje polecenie względem źródła danych. Uwidacznia Parameters element i może być wykonywany w zakresie obiektu Transaction z obiektu Connection. Klasa bazowa dla wszystkich Command obiektów jest klasą DbCommand .
DataReader Odczytuje tylko do odczytu, strumień danych jednokierunkowy z źródła danych. Klasa bazowa dla wszystkich DataReader obiektów jest klasą DbDataReader .
DataAdapter Wypełnia element DataSet i rozwiązuje aktualizacje ze źródłem danych. Klasa bazowa dla wszystkich DataAdapter obiektów jest klasą DbDataAdapter .

Oprócz podstawowych klas wymienionych we wcześniejszej tabeli w tym dokumencie dostawca danych programu .NET Framework zawiera również klasy wymienione w poniższej tabeli.

Obiekt opis
Transaction Rejestruje polecenia w ramach transakcji w źródle danych. Klasa bazowa dla wszystkich Transaction obiektów jest klasą DbTransaction . ADO.NET zapewnia również obsługę transakcji przy użyciu klas w System.Transactions przestrzeni nazw.
CommandBuilder Obiekt pomocnika, który automatycznie generuje właściwości polecenia obiektu DataAdapter lub uzyskuje informacje o parametrach z procedury składowanej i wypełnia kolekcję obiektu Command. Klasa bazowa dla wszystkich CommandBuilder obiektów jest klasą DbCommandBuilder .
ConnectionStringBuilder Obiekt pomocniczy, który zapewnia prosty sposób na tworzenie i zarządzanie zawartością ciągów połączenia używanych przez obiekty Connection. Klasa bazowa dla wszystkich ConnectionStringBuilder obiektów jest klasą DbConnectionStringBuilder .
Parameter Definiuje parametry danych wejściowych, wyjściowych i zwracanych dla poleceń i procedur składowanych. Klasa bazowa dla wszystkich Parameter obiektów jest klasą DbParameter .
Exception Zwracany po napotkaniu błędu w źródle danych. W przypadku błędu napotkanego na kliencie dostawcy danych programu .NET Framework zgłaszają wyjątek programu .NET Framework. Klasa bazowa dla wszystkich Exception obiektów jest klasą DbException .
Error Ujawnia informacje z ostrzeżenia lub błędu zwróconego przez źródło danych.
ClientPermission Podano atrybuty zabezpieczeń dostępu do kodu dostawcy danych programu .NET Framework. Klasa bazowa dla wszystkich ClientPermission obiektów jest klasą DBDataPermission .

Dostawca danych programu .NET Framework dla programu SQL Server (SqlClient)

Dostawca danych .NET Framework dla SQL Server (SqlClient) używa własnego protokołu do komunikowania się z SQL Server. Jest on lekki i działa dobrze, ponieważ jest zoptymalizowany pod kątem bezpośredniego dostępu do programu SQL Server bez dodawania warstwy OLE DB lub Open Database Connectivity (ODBC). Poniższa ilustracja kontrastuje .NET Framework Dostawca danych dla SQL Server z .NET Framework Dostawcą danych dla OLE DB. Dostawca danych platformy .NET Framework dla OLE DB komunikuje się ze źródłem danych OLE DB poprzez zarówno składnik usługi OLE DB, który zapewnia buforowanie połączeń i usługi transakcji, jak i dostawcę OLE DB dla źródła danych.

Uwaga

Dostawca danych .NET Framework dla ODBC ma podobną architekturę jak Dostawca danych .NET Framework dla OLE DB; na przykład wywołuje składnik usługi ODBC.

Porównanie dostawcy danych .NET Framework dla SQL Server i dostawcy danych .NET Framework dla OLE DB.

Dostawca danych .NET Framework dla SQL Server znajduje się w przestrzeni nazw System.Data.SqlClient.

Program .NET Framework Dostawca danych dla programu SQL Server obsługuje zarówno transakcje lokalne, jak i rozproszone. W przypadku transakcji rozproszonych dostawca danych .NET Framework dla SQL Server domyślnie automatycznie angażuje się w transakcję i uzyskuje szczegóły transakcji z usług składników systemu Windows lub System.Transactions. Aby uzyskać więcej informacji, zobacz Transakcje i Współbieżność.

Poniższy przykład kodu pokazuje, jak uwzględnić System.Data.SqlClient przestrzeń nazw w aplikacjach.

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

.NET Framework Dostawca danych dla OLE DB

.NET Framework Dostawca danych dla OLE DB (OleDb) używa natywnego OLE DB poprzez interop COM, aby umożliwić dostęp do danych. Program .NET Framework Dostawca danych dla OLE DB obsługuje zarówno transakcje lokalne, jak i rozproszone. W przypadku transakcji rozproszonych dostawca danych .NET Framework dla OLE DB domyślnie automatycznie dołącza się do transakcji i uzyskuje szczegóły transakcji z Usług składników Windows. Aby uzyskać więcej informacji, zobacz Transakcje i Współbieżność.

W poniższej tabeli przedstawiono dostawców, którzy zostali przetestowani przy użyciu ADO.NET.

Sterownik Dostawca
SQLOLEDB Dostawca Microsoft OLE DB dla programu SQL Server
MSDAORA Dostawca Microsoft OLE DB dla firmy Oracle
Microsoft.Jet.OLEDB.4.0 Dostawca OLE DB dla firmy Microsoft Jet

Uwaga

Nie zaleca się używania bazy danych Microsoft Access (Jet) jako źródła danych dla aplikacji wielowątkowych, takich jak aplikacje ASP.NET. Jeśli musisz użyć narzędzia Jet jako źródła danych dla aplikacji ASP.NET, należy pamiętać, że ASP.NET aplikacje łączące się z bazą danych programu Access mogą napotkać problemy z połączeniem.

Dostawca danych .NET Framework dla OLE DB nie obsługuje interfejsów wersji 2.5 OLE DB. Dostawcy OLE DB, którzy wymagają obsługi interfejsów OLE DB 2.5, nie będą działać poprawnie z .NET Framework Data Provider for OLE DB. Obejmuje to dostawcę Microsoft OLE DB dla programu Exchange i dostawcę Microsoft OLE DB na potrzeby publikowania internetowego.

Dostawca danych .NET Framework dla OLE DB nie współpracuje z dostawcą OLE DB dla ODBC (MSDASQL). Aby uzyskać dostęp do źródła danych ODBC przy użyciu ADO.NET, użyj Dostawcę danych .NET Framework dla ODBC.

Program .NET Framework Dostawca danych dla klas OLE DB znajduje się w System.Data.OleDb przestrzeni nazw. Poniższy przykład kodu pokazuje, jak uwzględnić System.Data.OleDb przestrzeń nazw w aplikacjach.

Imports System.Data.OleDb
using System.Data.OleDb;

.NET Framework Dostawca danych dla ODBC

Dostawca danych programu .NET Framework dla ODBC (Odbc) używa natywnego Menedżera Sterowników ODBC (DM) aby umożliwić dostęp do danych. Dostawca danych ODBC obsługuje zarówno transakcje lokalne, jak i rozproszone. W przypadku transakcji rozproszonych dostawca danych ODBC domyślnie automatycznie loguje się do transakcji i uzyskuje szczegóły transakcji z usług składników systemu Windows. Aby uzyskać więcej informacji, zobacz Transakcje i Współbieżność.

W poniższej tabeli przedstawiono sterowniki ODBC przetestowane przy użyciu ADO.NET.

Sterownik
SQL Server
Microsoft ODBC for Oracle
Sterownik programu Microsoft Access (*.mdb)

Dostawca danych .NET Framework dla ODBC znajduje się w przestrzeni nazw System.Data.Odbc.

Poniższy przykład kodu pokazuje, jak uwzględnić System.Data.Odbc przestrzeń nazw w aplikacjach.

Imports System.Data.Odbc
using System.Data.Odbc;

Uwaga

.NET Framework Data Provider dla ODBC wymaga MDAC w wersji 2.6 lub nowszej, a zaleca się użycie MDAC 2.8 SP1.

Dostawca danych .NET Framework dla Oracle

Dostawca danych .NET Framework dla Oracle (OracleClient) umożliwia dostęp do źródeł danych Oracle za pośrednictwem oprogramowania Oracle do łączności klienta. Dostawca danych obsługuje oprogramowanie klienckie Oracle w wersji 8.1.7 lub nowszej. Dostawca danych obsługuje zarówno transakcje lokalne, jak i rozproszone. Aby uzyskać więcej informacji, zobacz Transakcje i Współbieżność.

Dostawca danych .NET Framework dla Oracle wymaga oprogramowania klienckiego Oracle (w wersji 8.1.7 lub nowszej) w systemie przed nawiązaniem połączenia ze źródłem danych Oracle.

Dostawca danych .NET Framework dla klas Oracle znajduje się w System.Data.OracleClient przestrzeni nazw i zawarty jest w zestawie System.Data.OracleClient.dll. Należy odwołać się zarówno do System.Data.dll, jak i System.Data.OracleClient.dll podczas kompilowania aplikacji korzystającej z dostawcy danych.

Poniższy przykład kodu pokazuje, jak uwzględnić System.Data.OracleClient przestrzeń nazw w aplikacjach.

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

Wybierz dostawcę danych programu .NET Framework

W zależności od projektu i źródła danych dla aplikacji wybór dostawcy danych programu .NET Framework może poprawić wydajność, możliwości i integralność aplikacji. W poniższej tabeli omówiono zalety i ograniczenia poszczególnych dostawców danych programu .NET Framework.

Dostawca Uwagi
Dostawca danych .NET Framework dla SQL Server Zalecane w przypadku aplikacji warstwy środkowej korzystających z programu Microsoft SQL Server.

Zalecane w przypadku aplikacji jednowarstwowych korzystających z Microsoft Database Engine (MSDE) lub programu SQL Server.

Zalecane jest używanie dostawcy danych .NET Framework dla OLE DB zamiast dostawcy OLE DB dla SQL Server (SQLOLEDB).
.NET Framework Dostawca danych dla OLE DB Zaleca się używanie dostawcy danych .NET Framework dla SQL Server zamiast tego dostawcy.

Zalecane w przypadku aplikacji jednowarstwowych korzystających z baz danych programu Microsoft Access. Korzystanie z bazy danych programu Access dla aplikacji warstwy środkowej nie jest zalecane.
.NET Framework Dostawca danych dla ODBC Zalecane w przypadku aplikacji środkowych i jednowarstwowych korzystających ze źródeł danych ODBC.
.NET Framework Dostawca danych dla Oracle Zalecane w przypadku aplikacji środkowych i jednowarstwowych korzystających ze źródeł danych Oracle.

Dostawca EntityClient

Dostawca EntityClient służy do uzyskiwania dostępu do danych na podstawie modelu danych JEDNOSTKI (EDM). W przeciwieństwie do innych dostawców danych programu .NET Framework, nie współdziała ona bezpośrednio ze źródłem danych. Zamiast tego używa języka Entity SQL do komunikowania się z podstawowym dostawcą danych. Aby uzyskać więcej informacji, zobacz EntityClient Provider for the Entity Framework (Dostawca EntityClient dla programu Entity Framework).

Zobacz też