4-1 ADO.NET簡介 4

4-1-4   ADO.NET鏈接數據庫管理系統

1.ADO.NET鏈接數據庫的類型及方法

ADO.NET鏈接數據庫的內容包括:鏈接到數據庫、執行數據庫操縱命令和檢索結果。能夠直接處理檢索到的結果,也能夠將其放入DataSet對象,方便與來自多個源的數據和在層之間進行遠程處理的數據組合在一塊兒,以特殊方式向用戶公開。.NET Framework數據提供程序是輕量的,它在數據源和代碼之間建立了一個最小層,以便在不以功能爲代價的前提下提升性能。數據提供程序的在ADO.NET中分類如圖411所示:
4-11  .NET數據提供程序的在ADO.NET中的分類圖
ADO.NET操控數據庫的主要對象包括:Connection對象,Command對象,DataReader對象,DataAdapter對象。41歸納了組成 .NET Framework 數據提供程序的四個核心對象。
4-1 .NET數據提供程序的四個核心對象表
對象
說明
Connection
創建與特定數據源的鏈接。全部Connection對象的基類均爲 DbConnection 類。
Command
對數據源執行命令。公開Parameters,而且能夠經過ConnectionTransaction的範圍內執行。全部Command對象的基類均爲 DbCommand 類。
DataReader
從數據源中讀取只進且只讀的數據流。全部DataReader對象的基類均爲 DbDataReader 類。
DataAdapter
用數據源填充DataSet並解析更新。全部DataAdapter對象的基類均爲 DbDataAdapter 類。
除表4-1列出的ADO.NET核心對象以外,.NET Framework 數據提供程序還包含4-2表列出的其餘重要對象。
4-2 .NET數據提供程序的其餘對象表
對象
說明
Transaction
使您可以在數據源的事務中登記命令。全部Transaction對象的基類均爲 DbTransaction 類。
CommandBuilder
幫助器對象將自動生成DataAdapter的命令屬性或將從存儲過程派生參數信息並填充Command對象的Parameters集合。全部CommandBuilder對象的基類均爲 DbCommandBuilder 類。
ConnectionStringBuilder
幫助器對象爲建立和管理Connection對象所使用的鏈接字符串的內容提供了一種簡單的方法。全部ConnectionStringBuilder對象的基類均爲 DbConnectionStringBuilder 類。
Exception
在數據源中遇到錯誤時返回。對於在客戶端遇到的錯誤,.NET Framework數據提供程序會引起.NET Framework異常。全部Exception對象的基類均爲 DbException 類。
Error
公開數據源返回的警告或錯誤中的信息。
ClientPermission
.NET Framework數據提供程序代碼訪問安全屬性。全部ClientPermission對象的基類均爲 DBDataPermission 類。
另外,.NET數據提供程序的命名空間有四類,前面提到的這些對象在每類數據提供程序的命名空間裏都有一套,而且某個對象在不一樣的命名空間內名稱是不一樣的。四類命名空間分別是:SQLClientOLEDBOracleODBC,其對應的數據提供程序如表43所示:
4-3 四類.NET數據提供程序表
.NET Framework 數據提供程序
說明
SQL Server .NET Framework數據提供程序
提供對Microsoft SQL Server 7.0版或更高版本的數據訪問。使用 System.Data.SqlClient 命名空間。
建議用於使用Microsoft SQL Server 7.0或更高版本的中間層應用程序,Microsoft數據庫引擎(MSDE)SQL Server 7.0或更高版本的單層應用程序。
建議將用於SQL ServerOLE DB提供程序(SQLOLEDB)OLE DB .NET Framework數據提供程序一塊兒使用。對於SQL Server 6.5版和較早版本,必須將用於SQL ServerOLE DB提供程序與OLE DB .NET Framework數據提供程序一塊兒使用。
OLE DB .NET Framework數據提供程序
適合於使用OLE DB公開的數據源。使用 System.Data.OleDb 命名空間。
建議用於使用SQL Server 6.5或較早版本的中間層應用程序。
對於SQL Server 7.0或更高版本,建議使用SQL Server .NET Framework數據提供程序。還建議用於使用Microsoft Access數據庫的單層應用程序。不建議將Access數據庫用於中間層應用程序。
ODBC .NET Framework數據提供程序
適合於使用ODBC公開的數據源。使用 System.Data.Odbc 命名空間。
建議用於使用ODBC數據源的中間層和單層應用程序。
Oracle .NET Framework數據提供程序
適用於Oracle數據源。Oracle .NET Framework數據提供程序支持Oracle 客戶端軟件 8.1.7 版和更高版本,使用 System.Data.OracleClient 命名空間。建議用於使用Oracle數據源的中間層和單層應用程序。
每一類數據提供程序的命名空間裏都有一套對象,它們是經過前綴名進行區別的,例如:SQLClient命名空間包含的對象有:SqlConnectionSqlCommandSqlDataReaderSqlDataAdapter等,OLEDB命名空間包含的對象有:OleDbConnectionOleDbCommandOleDbDataReaderOleDbDataAdapter等。

1.ADO.NET操控數據庫的工做過程

.NET 數據提供程序的工做過程如圖4-12所示:
4-12 .NET數據提供程序的工做過程圖
在圖4-12123步驟是從服務器檢索數據的過程,AB是對數據庫修改的過程。在這個過程當中12步和B過程都是.NET數據提供程序的工做步驟。

2.ADO.NETMS SQL Server的關聯

因爲架構在.NET Framework 2.0基礎之上的VS2005軟件開發系統平臺與SQL Server數據庫管理信息系統都是出自微軟公司旗下產品,因此VS2005SQL Server的數據通訊自己就已經通過了優化,能夠直接訪問SQL Server而不用添加OLE DB或開放式數據庫鏈接(ODBC)層,並具備良好的性能。
如下代碼示例顯示如何在應用程序中包含System.Data.SqlClient命名空間。
using System.Data.SqlClient;
 
注意
ODBC .NET Framework 數據提供程序的結構與 OLE DB .NET Framework 數據提供程序的結構類似;例如,它調入 ODBC 服務組件。

3.ADO.NETOLEDB的關聯

OLEDB Microsoft的一個戰略性系統級編程接口,用於管理整個組織內的數據。OLEDB 是創建在ODBC功能之上的一個開放規範,主要用於訪問非關係型數據庫。表44顯示已經用ADO.NET進行測試的提供程序。
4-4 OLEDB數據提供程序所對應的數據源驅動程序表
驅動程序
提供程序
SQLOLEDB
用於SQL ServerMicrosoft OLE DB提供程序
MSDAORA
用於OracleMicrosoft OLE DB提供程序
Microsoft.Jet.OLEDB.4.0
用於Microsoft JetOLE DB提供程序
OLE DB .NET Framework 數據提供程序類位於System.Data.OleDb命名空間中。如下代碼示例顯示如何在應用程序中包含System.Data.OleDb命名空間。
using System.Data.OleDb;
注意
不推薦將 Access (Jet) 數據庫用做多線程應用程序(如 ASP.NET 應用程序)的數據源。若是必須將 Access 數據庫用做 ASP.NET 應用程序的數據源,並且不能使用其餘數據庫(如 SQL Server MSDE ),那麼請注意,鏈接到 Access 數據庫的 ASP.NET 應用程序可能會遇到鏈接問題,這些問題一般與安全權限有關。

4.ADO.NETODBC的關聯

DSN (數據源)是在odbc裏設置的,用於鏈接數據庫,ODBC只能用於關係型數據庫。做爲DSN的數據庫鏈接可分爲之前三種:
n   用戶DSN:數據源對計算機來講是本地的,而且只能被當前用戶訪問,因此只有創建該數據源的用戶才能訪問該數據源,並且不能從網絡上訪問該數據源。
n   系統DSN:數據源對於計算機來講也是本地的,但並非用戶專用的,任何具備權限的用戶均可以訪問系統DSN」,可是它仍是不能從網絡上來訪問。
n   文件DSN:則與前二者不一樣,它們能夠在全部安裝了相同驅動程序的用戶中共享,這些數據源對於計算機說都是本地的。也就是說能夠經過網絡上來訪問。
    45顯示了用ADO.NET測試的ODBC驅動程序。
4-5 ODBC數據提供程序所對應的數據源驅動程序表
驅動程序
SQL Server
Microsoft ODBC for Oracle
Microsoft Access 驅動程序 (*.mdb)
ODBC .NET Framework 數據提供程序類位於System.Data.Odbc命名空間中。如下代碼示例顯示如何在您的應用程序中包含System.Data.Odbc命名空間。
using System.Data.Odbc;

5.ADO.NETOracle的關聯

ADO.NET 提供程序經過Oracle客戶端鏈接軟件啓用對Oracle數據源的數據訪問,該數據提供程序支持Oracle客戶端軟件 8.1.7 版或更高版本。
ADO.NET 爲與Oracle數據庫關聯提供程序類位於System.Data.OracleClient命名空間中,幷包含在System.Data.OracleClient.dll程序集中。在編譯使用該數據提供程序的應用程序時,須要同時引用System.Data.dllSystem.Data.OracleClient.dll
如下代碼示例顯示如何在您的應用程序中包含System.Data.OracleClient命名空間。
using System.Data;
using System.Data.OracleClient;
相關文章
相關標籤/搜索