CommandBehavior Enum

Definition

Innehåller en beskrivning av resultatet av frågan och dess effekt på databasen.

Den här uppräkningen stöder en bitvis kombination av dess medlemsvärden.

public enum class CommandBehavior
[System.Flags]
public enum CommandBehavior
[<System.Flags>]
type CommandBehavior = 
Public Enum CommandBehavior
Arv
CommandBehavior
Attribut

Fält

Name Värde Description
Default 0

Frågan kan returnera flera resultatuppsättningar. Körningen av frågan kan påverka databastillståndet. Default anger inga CommandBehavior flaggor, så att anropa ExecuteReader(CommandBehavior.Default) är funktionellt likvärdigt med att anropa ExecuteReader().

SingleResult 1

Frågan returnerar en enda resultatuppsättning.

SchemaOnly 2

Frågan returnerar endast kolumninformation. När du använder SchemaOnly föregår .NET Framework Data Provider för SQL Server instruktionen som körs med SET FMTONLY ON.

KeyInfo 4

Frågan returnerar kolumn- och primärnyckelinformation. Providern lägger till extra kolumner i resultatuppsättningen för befintliga primärnyckel- och tidsstämpelkolumner.

SingleRow 8

Frågan förväntas returnera en enda rad i den första resultatuppsättningen. Körningen av frågan kan påverka databastillståndet. Vissa .NET dataprovidrar kan, men behöver inte, använda den här informationen för att optimera kommandots prestanda. När du anger SingleRow med metoden ExecuteReader() för objektet OleDbCommand utför .NET Framework Data Provider för OLE DB bindning med hjälp av OLE DB IRow-gränssnittet om det är tillgängligt. Annars används IRowset gränssnittet. Om SQL-instruktionen förväntas returnera endast en enskild rad kan du även förbättra programprestanda genom att SingleRow ange. Du kan ange SingleRow när du kör frågor som förväntas returnera flera resultatuppsättningar. I så fall, där både en SQL-fråga med flera resultat och en enskild rad anges, innehåller resultatet som returneras endast den första raden i den första resultatuppsättningen. De andra resultatuppsättningarna i frågan returneras inte.

SequentialAccess 16

Ger ett sätt för DataReader att hantera rader som innehåller kolumner med stora binära värden. I stället för att läsa in hela raden SequentialAccess kan DataReader data läsas in som en ström. Du kan sedan använda GetBytes metoden eller GetChars för att ange en byteplats för att starta läsåtgärden och en begränsad buffertstorlek för de data som returneras.

CloseConnection 32

När kommandot körs stängs det associerade Connection objektet när det associerade DataReader objektet stängs.

Kommentarer

CommandBehavior-värdena används av ExecuteReader-metoden i IDbCommand och av de klasser som implementerar.

En bitvis kombination av dessa värden kan användas.

CommandBehavior ignoreras när det används för att definiera en SqlNotificationRequest eller SqlDependency och bör därför inte användas. Använd konstruktorn som inte kräver någon CommandBehavior parameter i dessa två fall.

Anteckningar om enskilda uppräkningsmedlemmar

När du använder KeyInfo, kommer .NET Framework Data Provider för SQL Server att placera SET FMTONLY OFF och SET NO_BROWSETABLE ON före den instruktion som körs. Användare bör vara medvetna om potentiella biverkningar, till exempel interferens med användningen av SET FMTONLY ON instruktioner. Mer information finns i SET FMTONLY (Transact-SQL).

Note

Använd SequentialAccess för att hämta stora värden och binära data. Annars kan en OutOfMemoryException inträffa och anslutningen stängs.

När du anger SequentialAccessmåste du läsa från kolumnerna i den ordning de returneras, men du behöver inte läsa varje kolumn. När du har läst förbi en plats i den returnerade dataströmmen kan data på eller före den platsen inte längre läsas från DataReader. När du använder OleDbDataReaderkan du läsa om det aktuella kolumnvärdet tills du läser förbi det. När du använder SqlDataReaderkan du bara läsa ett kolumnvärde en gång.

Gäller för