CommandBehavior Enumeration

Definition

Stellt eine Beschreibung der Abfrageergebnisse und deren Auswirkungen auf die Datenbank bereit.

Diese Enumeration unterstützt eine bitweise Kombination ihrer Memberwerte.

public enum class CommandBehavior
[System.Flags]
public enum CommandBehavior
[<System.Flags>]
type CommandBehavior = 
Public Enum CommandBehavior
Vererbung
CommandBehavior
Attribute

Felder

CloseConnection 32

Beim Ausführen des Befehls wird das zugeordnete Connection-Objekt geschlossen, wenn das zugeordnete DataReader-Objekt geschlossen wird.

Default 0

Die Abfrage kann mehrere Resultsets zurückgeben. Die Ausführung der Abfrage kann sich auf den Zustand der Datenbank auswirken. Default legt keine CommandBehavior-Flags fest, daher entspricht die Funktion eines Aufrufs von ExecuteReader(CommandBehavior.Default) dem von ExecuteReader().

KeyInfo 4

Die Abfrage gibt Informationen über Spalten und Primärschlüssel zurück. Der Anbieter fügt dem Resultset zusätzliche Spalten für vorhandene Primärschlüssel und Zeitstempelspalten an.

SchemaOnly 2

Die Abfrage gibt nur Spalteninformationen zurück. Bei Verwendung von SchemaOnly stellt der .NET Framework-Datenanbieter für SQL Server der auszuführenden Anweisung SET FMTONLY ON voran.

SequentialAccess 16

Ermöglicht dem DataReader das Behandeln von Zeilen, die Spalten mit großen Binärwerten enthalten. Statt des Ladens der gesamten Zeile ermöglicht SequentialAccess dem DataReader das Laden der Daten als Stream. Anschließend können Sie mit der GetBytes-Methode oder der GetChars-Methode eine Byteposition für den Beginn des Lesevorgangs sowie eine eingeschränkte Puffergröße für die zurückgegebenen Daten angeben.

SingleResult 1

Die Abfrage gibt ein einziges Resultset zurück.

SingleRow 8

Von der Abfrage wird erwartet, dass eine einzige Zeile des ersten Resultsets zurückgegeben wird. Die Ausführung der Abfrage kann sich auf den Zustand der Datenbank auswirken. Einige .NET-Datenanbieter können mit diesen Informationen die Leistung des Befehls optimieren (dies ist jedoch nicht unbedingt erforderlich). Wenn Sie SingleRow mit der ExecuteReader()-Methode des OleDbCommand-Objekts angeben, führt der .NET Framework-Datenanbieter für OLE DB eine Bindung mithilfe der OLE DB IRow-Schnittstelle durch, sofern diese verfügbar ist. Andernfalls wird die IRowset-Schnittstelle verwendet. Wenn die SQL-Anweisung nur eine einzige Zeile zurückgeben soll, kann durch Angeben von SingleRow auch die Leistung der Anwendung verbessert werden. SingleRow kann auch beim Ausführen von Abfragen angegeben werden, die mehrere Resultsets zurückgeben können. In einem solchen Fall, in dem sowohl eine SQL-Abfrage für mehrere Resultsets als auch eine einzige Zeile angegeben werden, enthält das zurückgegebene Ergebnis nur die erste Zeile des ersten Resultsets. Die übrigen Resultsets der Abfrage werden nicht zurückgegeben.

Hinweise

Die CommandBehavior Werte werden von der ExecuteReader Methode und IDbCommand allen Implementierungsklassen verwendet.

Eine bitweise Kombination dieser Werte kann verwendet werden.

CommandBehavior wird ignoriert, wenn sie verwendet werden, um eine SqlNotificationRequest oder zu definieren und SqlDependency sollte daher nicht verwendet werden. Verwenden Sie den Konstruktor, der keinen Parameter in diesen beiden Fällen benötigt CommandBehavior .

Notizen zu einzelnen Enumerationsmitgliedern

Bei Verwendung KeyInfowird die .NET Framework Datenanbieter für SQL Server vor der Ausführung der Anweisung mit SET FMTONLY OFF und SET NO_BROWSETABLE ON. Der Benutzer sollte sich über mögliche Nebenwirkungen bewusst sein, wie z. B. Störungen bei der Verwendung von SET FMTONLY ON Anweisungen. Weitere Informationen finden Sie unter SET FMTONLY (Transact-SQL).

Hinweis

Verwenden Sie SequentialAccess zum Abrufen großer Werte und binärer Daten. Andernfalls kann eine OutOfMemoryException Verbindung auftreten, und die Verbindung wird geschlossen.

Wenn Sie angeben SequentialAccess, müssen Sie aus den Spalten in der zurückgegebenen Reihenfolge lesen, obwohl Sie nicht erforderlich sind, jede Spalte zu lesen. Nachdem Sie einen Speicherort im zurückgegebenen Datenstrom gelesen haben, können Daten an oder vor diesem Speicherort nicht mehr aus dem DataReaderzurückgegebenen Datenstrom gelesen werden. Wenn Sie den OleDbDataReaderaktuellen Spaltenwert verwenden, können Sie den aktuellen Spaltenwert erneut lesen, bis Sie ihn lesen. Wenn Sie die SqlDataReaderVerwendung verwenden, können Sie nur einmal einen Spaltenwert lesen.

Gilt für: