使用應用程序進行傳輸ADO 記錄集簡介
在 ADO.NET 中,打開連接的時間僅足夠執(zhí)行數(shù)據(jù)庫操作,例如“選擇”(Select) 或“更新”(Update)。您可以將行讀入數(shù)據(jù)集中,然后在不保持與數(shù)據(jù)源的連接的情況下使用它們。在 ADO 中,記錄集可以提供不連接的訪問,但ADO 記錄集 主要是為連接的訪問設計的。
ADO 和 ADO.NET 中的不連接處理之間存在一個顯著差異。在ADO 記錄集中,通過調用 OLE DB 提供程序來與數(shù)據(jù)庫通信。但在 ADO.NET 中,您通過數(shù)據(jù)適配器(OleDbDataAdapter、SqlDataAdapter、OdbcDataAdapter 或 OracleDataAdapter 對象)與數(shù)據(jù)庫通信,這將調用 OLE DB 提供程序或基礎數(shù)據(jù)源提供的 API。ADO 和 ADO.NET 之間的主要區(qū)別在于:在 ADO.NET 中,數(shù)據(jù)適配器允許您控制將對數(shù)據(jù)集所做的更改傳輸?shù)綌?shù)據(jù)庫的方式,方法是實現(xiàn)性能優(yōu)化、執(zhí)行數(shù)據(jù)驗證檢查或添加其他任何額外處理。#t#
注意 數(shù)據(jù)適配器、數(shù)據(jù)連接、數(shù)據(jù)命令和數(shù)據(jù)讀取器是組成 .NET Framework 數(shù)據(jù)提供程序的組件。Microsoft 和第三方供應商可能會提供其它提供程序,這些提供程序也可集成到 Visual Studio 中。有關不同 .NET 數(shù)據(jù)提供程序的信息,請參見 .NET 數(shù)據(jù)提供程序。
在應用程序間共享數(shù)據(jù)
在應用程序間傳輸 ADO.NET 數(shù)據(jù)集比傳輸 ADO 不連接的記錄集要容易得多。若要將 ADO 記錄集不連接的記錄集從一個組件傳輸?shù)搅硪粋€組件,請使用 COM 封送。若要在 ADO.NET 中傳輸數(shù)據(jù),請使用數(shù)據(jù)集,它可以傳輸 XML 流。相對于 COM 封送,XML 文件的傳輸提供以下便利之處:
更豐富的數(shù)據(jù)類型
COM 封送提供一組有限的數(shù)據(jù)類型(由 COM 標準定義的那些類型)。由于 ADO.NET 中的數(shù)據(jù)集傳輸基于 XML 格式,所以對數(shù)據(jù)類型沒有限制。因此,共享數(shù)據(jù)集的組件可以使用這些組件一般會使用的任何豐富的數(shù)據(jù)類型集。
性能
傳輸大型 ADO 記錄集或大型 ADO.NET 數(shù)據(jù)集會使用網(wǎng)絡資源;隨著數(shù)據(jù)量的增長,施加于網(wǎng)絡的壓力也在增加。ADO 和 ADO.NET 都使您可以***限度地降低所傳輸?shù)臄?shù)據(jù)。但 ADO.NET 還提供另一個性能優(yōu)勢:ADO.NET 不需要數(shù)據(jù)類型轉換。而需要 COM 封送來在組件間傳輸記錄集的 ADO,則需要將 ADO 數(shù)據(jù)類型轉換為 COM 數(shù)據(jù)類型。