Körning sida vid sida i ADO.NET
Sida vid sida-körning i .NET Framework är möjligheten att köra ett program på en dator som har flera versioner av .NET Framework installerat, exklusivt med den version som programmet kompilerades för. Detaljerad information om hur du konfigurerar körning sida vid sida finns i Körning sida vid sida.
Ett program som kompilerats med hjälp av en version av .NET Framework kan köras på en annan version av .NET Framework. Vi rekommenderar dock att du kompilerar en version av programmet för varje installerad version av .NET Framework och kör dem separat. I båda scenariona bör du vara medveten om ändringar i ADO.NET mellan versioner som kan påverka programmets framåtkompatibilitet eller bakåtkompatibilitet.
Framåtkompatibilitet och bakåtkompatibilitet
Vidarebefordra kompatibilitet innebär att ett program kan kompileras med en tidigare version av .NET Framework, men fortfarande körs på en senare version av .NET Framework. ADO.NET kod som skrivits för .NET Framework version 1.1 är framåtkompatibel med senare versioner.
Bakåtkompatibilitet innebär att ett program kompileras för en nyare version av .NET Framework, men fortsätter att köras på tidigare versioner av .NET Framework utan någon funktionsförlust. Detta gäller naturligtvis inte för funktioner som introduceras i en ny version av .NET Framework.
.NET Framework-dataprovidern för ODBC
Från och med version 1.1 ingår .NET Framework-dataprovidern för ODBC (System.Data.Odbc) som en del av .NET Framework.
Om du har utvecklat ett program för .NET Framework version 1.0 som använder ODBC-dataprovidern för att ansluta till datakällan och du vill köra programmet på .NET Framework version 1.1 eller en senare version, måste du uppdatera namnområdet för ODBC-dataprovidern till System.Data.Odbc. Sedan måste du kompilera om den för den nyare versionen av .NET Framework.
Om du har utvecklat ett program för .NET Framework version 2.0 eller senare som använder ODBC-dataprovidern för att ansluta till din datakälla, och du vill köra programmet på .NET Framework version 1.0, måste du ladda ned ODBC-dataprovidern och installera den på .NET Framework version 1.0-systemet. Sedan måste du ändra namnområdet för ODBC-dataprovidern till Microsoft.Data.Odbc och kompilera om programmet för .NET Framework version 1.0.
.NET Framework-dataprovidern för Oracle
Från och med version 1.1 ingår .NET Framework-dataprovidern för Oracle (System.Data.OracleClient) som en del av .NET Framework.
Om du har utvecklat ett program för .NET Framework version 2.0 eller senare som använder dataprovidern för att ansluta till din datakälla, och du vill köra programmet på .NET Framework version 1.0, måste du ladda ned dataprovidern och installera den på .NET Framework version 1.0-systemet.
Kodåtkomstsäkerhet
Från och med .NET Framework version 2.0 kan alla .NET Framework-dataproviders användas i delvis betrodda zoner. Dessutom har en ny säkerhetsfunktion lagts till i .NET Framework-dataprovidrar i .NET Framework version 1.1. Med den här funktionen kan du begränsa vilka anslutningssträng som kan användas i en viss säkerhetszon. Du kan också inaktivera användningen av tomma lösenord för en viss säkerhetszon. Mer information finns i Kodåtkomstsäkerhet och ADO.NET.
Eftersom varje installation av .NET Framework har en separat Security.config-fil finns det inga kompatibilitetsproblem med säkerhetsinställningarna. Men om ditt program är beroende av de ytterligare säkerhetsfunktionerna i ADO.NET som ingår i .NET Framework version 1.1 och senare, kommer du inte att kunna distribuera det till ett version 1.0-system.
SqlCommand-körning
I .NET Framework version 1.1 och senare ExecuteReader kör endast ett kommando i samband med den sp_executesql lagrade proceduren om kommandot innehåller parametrar, vilket ger en prestandafördel. Om ett kommando som påverkar anslutningens tillstånd ingår i ett icke-parametriserat kommando ändrar det därför tillståndet för anslutningen för alla efterföljande kommandon som körs när anslutningen är öppen.
Överväg följande batch med kommandon som körs i ett anrop till ExecuteReader.
SET NOCOUNT ON;
SELECT * FROM dbo.Customers;
NOCOUNT
kommer att finnas kvar ON
för efterföljande kommandon som körs medan anslutningen är öppen.