ADO.NET 中的並存執行

在 .NET Framework 並存執行是指在安裝多個版本的 .NET Framework 電腦上執行應用程式 (單獨使用針對編譯該應用程式所用的版本) 的能力。 如需設定並存執行的詳細資訊,請參閱 並存執行

使用某個 .NET Framework 版本所編譯的應用程式可在不同的 .NET Framework 版本上執行。 但是,建議您最好先針對已安裝的每個 .NET Framework 版本編譯應用程式版本,然後再個別執行。 不論是上述哪一種狀況,您都應該了解 ADO.NET 各版本間的差異,因為它會影響應用程式的向前相容性或回溯相容性。

向前相容性和回溯相容性

所謂向前相容性是指應用程式可以使用舊版的 .NET Framework 編譯,但仍可順利在新版的 .NET Framework 執行。 針對 .NET Framework 1.1 版所撰寫的 ADO.NET 程式碼可向前相容於更新版本。

所謂回溯相容性是指針對新版 .NET Framework 所編譯的應用程式,但仍可在舊版 .NET Framework 繼續執行,而不會減損任何功能。 當然,這不適用於新版的 .NET Framework 所引入的功能。

ODBC 的 .NET Framework 資料提供者

從 1.1 版開始,.NET Framework Data Provider for ODBC (System.Data.Odbc) 就包含在 .NET Framework 中。

如果您的應用程式是針對 .NET Framework 1.0 版所開發,並且使用 ODBC 資料提供者來連接至資料來源,而您想在 .NET Framework 1.1 (含) 以後版本上執行這個應用程式,則必須將 ODBC 資料提供者的命名空間更新為 System.Data.Odbc。 然後,您還要為新版的 .NET Framework 重新編譯該程式。

如果您的應用程式是針對 .NET Framework 2.0 版或更新版本所開發,並且使用 ODBC 資料提供者來連接至資料來源,而您想在 .NET Framework 1.0 版執行這個應用程式,則必須下載 ODBC 資料提供者並將它安裝在 .NET Framework 1.0 版的系統。 接下來,您必須將 ODBC 資料提供者的命名空間變更為 Microsoft.Data.Odbc,並為 .NET Framework 1.0 版重新編譯這個應用程式。

Oracle 的 .NET Framework 資料提供者

從 1.1 版開始, .NET Framework Data Provider for Oracle (System.Data.OracleClient) 就包含在 .NET Framework 中。

如果您的應用程式是針對 .NET Framework 2.0 版或更新版本所開發,並且使用資料提供者來連接至資料來源,而您想在 .NET Framework 1.0 版執行這個應用程式,則必須下載資料提供者並將它安裝在 .NET Framework 1.0 版的系統。

程式碼存取安全性

從 .NET Framework 2.0 版開始,所有 .NET Framework 資料提供者都可以在部分信任區域使用。 此外,在 .NET Framework 1.1 版,已將新的安全性功能新增至 .NET Framework 資料提供者。 這個功能可讓您限制能在特定安全性區域中使用的連接字串。 您也可以在特定安全性地區內停用空白密碼。 如需詳細資訊,請參閱 Code Access Security and ADO.NET

因為安裝的每個 .NET Framework 都有個別的 Security.config 檔,所以安全性設定沒有相容性問題。 但是,如果您的應用程式有使用 .NET Framework 1.1 (含) 以後版本所包含 ADO.NET 的其他安全性功能,您將無法將應用程式散發到 1.0 版系統。

SqlCommand 之執行

在 .NET Framework 1.1 (含) 以後版本,ExecuteReader 只有當命令包含參數時,才會在 sp_executesql 預存程序的內容中執行命令,以便得到較佳效能。 這樣的結果是,若連接已開啟,凡是會影響連接狀態的命令 (它包含於非參數化命令中) 都會修改已執行之所有後續命令的連接狀態。

請考慮使用下列在 ExecuteReader 呼叫中執行的命令批次。

SET NOCOUNT ON;  
SELECT * FROM dbo.Customers;  

對於連接開啟時執行的任何後續命令,NOCOUNT 將保持為 ON

另請參閱