Dostawcy danych .NET Framework

Dostawca danych programu .NET Framework służy do nawiązywania połączenia z bazą danych, wykonywania poleceń i pobierania wyników. Wyniki te są przetwarzane bezpośrednio, umieszczane w DataSet obiekcie w celu udostępnienia użytkownikowi w razie potrzeby, w połączeniu z danymi z wielu źródeł lub zdalnego między warstwami. 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 programu .NET Framework dla programu SQL Server Zapewnia dostęp do danych dla programu Microsoft SQL Server. System.Data.SqlClient Używa przestrzeni nazw.
.NET Framework Dostawca danych dla OLE DB W przypadku źródeł danych udostępnianych przy użyciu ole DB. System.Data.OleDb Używa przestrzeni nazw.
.NET Framework Dostawca danych dla ODBC W przypadku źródeł danych udostępnianych przy użyciu odBC. System.Data.Odbc Używa przestrzeni nazw.
.NET Framework Dostawca danych for Oracle W przypadku źródeł danych Oracle. Program .NET Framework Dostawca danych for Oracle obsługuje oprogramowanie klienckie Oracle w wersji 8.1.7 lub nowszej System.Data.OracleClient oraz używa przestrzeni nazw.
Dostawca EntityClient Zapewnia dostęp do danych dla aplikacji modelu EDM (Entity Data Model). System.Data.EntityClient Używa przestrzeni nazw.
.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 Dostawca danych programu .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 strumień danych tylko do odczytu z źródła danych tylko do odczytu. Klasa bazowa dla wszystkich DataReader obiektów jest klasą DbDataReader .
DataAdapter Wypełnia element DataSet i usuwa 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 Zapisuje polecenia w transakcjach 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 DataAdapter polecenia obiektu lub uzyskuje informacje o parametrach z procedury składowanej i wypełnia Parameters kolekcję Command obiektu. Klasa bazowa dla wszystkich CommandBuilder obiektów jest klasą DbCommandBuilder .
ConnectionStringBuilder Obiekt pomocnika, który zapewnia prosty sposób tworzenia zawartości parametry połączenia używanych przez Connection obiekty i zarządzania nimi. 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 Uwidacznia 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)

Program .NET Framework Dostawca danych dla programu SQL Server (SqlClient) używa własnego protokołu do komunikowania się z programem SQL Server. Jest lekki i działa dobrze, ponieważ jest zoptymalizowany pod kątem bezpośredniego dostępu do programu SQL Server bez dodawania warstwy Połączenie ivity (ODBC) OLE DB lub Open Database. Poniższa ilustracja kontrastuje z Dostawca danych .NET Framework dla programu SQL Server przy użyciu programu .NET Framework Dostawca danych dla ole DB. Program .NET Framework Dostawca danych dla OLE DB komunikuje się ze źródłem danych OLE DB za pośrednictwem składnika usługi OLE DB, który zapewnia buforowanie połączeń i usługi transakcji oraz dostawcę OLE DB dla źródła danych.

Uwaga

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

Data providers
Porównanie Dostawca danych .NET Framework dla programu SQL Server i programu .NET Framework Dostawca danych dla OLE DB

Dostawca danych programu .NET Framework dla klas programu SQL Server znajdują się w System.Data.SqlClient przestrzeni nazw.

Program .NET Framework Dostawca danych dla programu SQL Server obsługuje zarówno transakcje lokalne, jak i rozproszone. W przypadku transakcji rozproszonych program .NET Framework Dostawca danych dla programu SQL Server domyślnie automatycznie loguje się do transakcji 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

Program .NET Framework Dostawca danych dla OLE DB (OleDb) używa natywnej bazy danych OLE DB za pośrednictwem międzyoperacyjności modelu COM w celu umożliwienia dostępu do danych. Program .NET Framework Dostawca danych dla OLE DB obsługuje zarówno transakcje lokalne, jak i rozproszone. W przypadku transakcji rozproszonych program .NET Framework Dostawca danych dla ole DB domyślnie automatycznie zapisuje się w 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 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 programu Access (Jet) jako źródła danych dla aplikacji wielowątków, 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.

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

Program .NET Framework Dostawca danych 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 Dostawca 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

Program .NET Framework Dostawca danych dla odBC (Odbc) używa natywnego menedżera sterowników ODBC (DM) w celu umożliwienia dostępu 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)

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

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

Zaleca się, aby program .NET Framework Dostawca danych dla ODBC wymagał programu MDAC 2.6 lub nowszej wersji, a zaleca się użycie programu MDAC 2.8 z dodatkiem SP1.

.NET Framework Dostawca danych for Oracle

Program .NET Framework Dostawca danych for Oracle (OracleClient) umożliwia dostęp do danych do źródeł danych Oracle za pośrednictwem oprogramowania do łączności klienta Oracle. 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ść.

Program .NET Framework Dostawca danych dla programu 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.

Program .NET Framework Dostawca danych dla klas Oracle znajduje się w System.Data.OracleClient przestrzeni nazw i znajduje się w System.Data.OracleClient.dll zestawie. Należy odwołać się zarówno do elementu , jak System.Data.dll 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;  

Wybieranie Dostawca 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 programu .NET Framework dla programu SQL Server Zalecane w przypadku aplikacji warstwy środkowej korzystających z programu Microsoft SQL Server.

Zalecane w przypadku aplikacji jednowarstwowych korzystających z aparatu bazy danych Microsoft (MSDE) lub programu SQL Server.

Zalecane w przypadku używania dostawcy OLE DB dla programu SQL Server (SQLOLEDB) z programem .NET Framework Dostawca danych dla OLE DB.
.NET Framework Dostawca danych dla OLE DB W przypadku programu SQL Server zalecane jest Dostawca danych programu .NET Framework dla programu 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 for 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ż