Teilen über


SqlCommandBuilder Klasse

Definition

Generiert automatisch Befehle für einzelne Tabellen, durch die an einem DataSetvorgenommene Änderungen mit der zugeordneten SQL Server-Datenbank abgeglichen werden. Diese Klasse kann nicht vererbt werden.

public ref class SqlCommandBuilder sealed : System::ComponentModel::Component
public ref class SqlCommandBuilder sealed : System::Data::Common::DbCommandBuilder
public sealed class SqlCommandBuilder : System.ComponentModel.Component
public sealed class SqlCommandBuilder : System.Data.Common.DbCommandBuilder
type SqlCommandBuilder = class
    inherit Component
type SqlCommandBuilder = class
    inherit DbCommandBuilder
Public NotInheritable Class SqlCommandBuilder
Inherits Component
Public NotInheritable Class SqlCommandBuilder
Inherits DbCommandBuilder
Vererbung
SqlCommandBuilder
Vererbung

Beispiele

Im folgenden Beispiel werden die SqlCommand- SqlDataAdapter und SqlConnection- zum Auswählen von Zeilen aus einer Datenquelle verwendet. Das Beispiel wird eine Verbindungszeichenfolge, eine Abfragezeichenfolge, bei der es sich um eine Transact-SQL SELECT-Anweisung handelt, und eine Zeichenfolge übergeben, die den Namen der Datenbanktabelle darstellt. Im Beispiel wird dann ein SqlCommandBuildererstellt.

public static DataSet SelectSqlRows(string connectionString,
    string queryString, string tableName)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        SqlDataAdapter adapter = new SqlDataAdapter();
        adapter.SelectCommand = new SqlCommand(queryString, connection);
        SqlCommandBuilder builder = new SqlCommandBuilder(adapter);

        connection.Open();

        DataSet dataSet = new DataSet();
        adapter.Fill(dataSet, tableName);

        //code to modify data in DataSet here

        builder.GetUpdateCommand();

        //Without the SqlCommandBuilder this line would fail
        adapter.Update(dataSet, tableName);

        return dataSet;
    }
}
Private Function SelectSqlRows(ByVal connectionString As String, _
    ByVal queryString As String, ByVal tableName As String) As DataSet

    Using connection As New SqlConnection(connectionString)

        Dim adapter As New SqlDataAdapter()
        adapter.SelectCommand = New SqlCommand(queryString, connection)
        Dim builder As New SqlCommandBuilder(adapter)

        connection.Open()

        Dim dataSet As New DataSet()
        adapter.Fill(dataSet, tableName)

        ' Code to modify data in DataSet here 

        builder.GetUpdateCommand()

        ' Without the SqlCommandBuilder this line would fail.
        adapter.Update(dataSet, tableName)

        Return dataSet
    End Using
End Function

Hinweise

Der SqlDataAdapter generiert nicht automatisch die Transact-SQL-Anweisungen, die erforderlich sind, um Änderungen an einem DataSet mit dem zugeordneten instance von SQL Server abzugleichen. Sie können jedoch ein SqlCommandBuilder -Objekt zum automatischen Generieren von Transact-SQL-Anweisungen für Einzeltabellenupdates erstellen, wenn Sie die SelectCommand -Eigenschaft von SqlDataAdapterfestlegen. Anschließend werden alle zusätzlichen Transact-SQL-Anweisungen, die Sie nicht festlegen, vom SqlCommandBuildergeneriert.

Der SqlCommandBuilder registriert sich selbst als Listener für RowUpdating Ereignisse, wenn Sie die DataAdapter -Eigenschaft festlegen. Sie können nur ein SqlDataAdapter Objekt oder SqlCommandBuilder ein Objekt gleichzeitig miteinander zuordnen.

Zum Generieren von INSERT-, UPDATE- oder DELETE-Anweisungen wird die SqlCommandBuilderSelectCommand -Eigenschaft verwendet, um einen erforderlichen Metadatensatz automatisch abzurufen. Wenn Sie die SelectCommand ändern, nachdem die Metadaten abgerufen wurden, z. B. nach dem ersten Update, sollten Sie die RefreshSchema -Methode aufrufen, um die Metadaten zu aktualisieren.

Der SelectCommand muss außerdem mindestens einen Primärschlüssel oder eine eindeutige Spalte zurückgeben. Wenn keine vorhanden ist, wird eine InvalidOperation-Ausnahme generiert, und die Befehle werden nicht generiert.

Verwendet SqlCommandBuilder auch die ConnectionEigenschaften , CommandTimeoutund, auf Transaction die SelectCommandvon verwiesen wird. Der Benutzer sollte aufrufen RefreshSchema , wenn eine oder mehrere dieser Eigenschaften geändert oder die SelectCommand selbst ersetzt wird. Andernfalls behalten die InsertCommandEigenschaften , UpdateCommandund DeleteCommand ihre vorherigen Werte bei.

Wenn Sie aufrufen Dispose, wird die SqlCommandBuilder Zuordnung zu dem SqlDataAdaptergetrennt, und die generierten Befehle werden nicht mehr verwendet.

Konstruktoren

SqlCommandBuilder()

Initialisiert eine neue Instanz der SqlCommandBuilder-Klasse.

SqlCommandBuilder(SqlDataAdapter)

Initialisiert eine neue Instanz der SqlCommandBuilder-Klasse mit dem zugeordneten SqlDataAdapter-Objekt.

Eigenschaften

CanRaiseEvents

Ruft einen Wert ab, der angibt, ob die Komponente ein Ereignis auslösen kann.

(Geerbt von Component)
CatalogLocation

Ruft die CatalogLocation für eine Instanz der SqlCommandBuilder-Klasse ab oder legt sie fest.

CatalogSeparator

Ruft eine Zeichenfolge als Katalogtrennzeichen für eine Instanz der SqlCommandBuilder-Klasse ab oder legt sie fest.

ConflictOption

Gibt an, welche ConflictOption vom DbCommandBuilder verwendet werden muss.

(Geerbt von DbCommandBuilder)
Container

Ruft die IContainer ab, die in der Component enthalten ist.

(Geerbt von Component)
DataAdapter

Ruft ein SqlDataAdapter-Objekt ab, für das automatisch Transact-SQL-Anweisungen generiert werden, oder legt dieses fest.

DesignMode

Ruft einen Wert ab, der angibt, ob sich Component gegenwärtig im Entwurfsmodus befindet.

(Geerbt von Component)
Events

Ruft die Liste der Ereignishandler ab, die dieser Component angefügt sind.

(Geerbt von Component)
QuotePrefix

Ruft das oder die Anfangszeichen ab, die beim Angeben von SQL Server-Datenbankobjekten (z. B. Tabellen oder Spalten) verwendet werden sollen, deren Namen Leerzeichen oder reservierte Token enthalten, oder legt diese fest.

QuoteSuffix

Ruft das oder die Endzeichen ab, die beim Angeben von SQL Server-Datenbankobjekten (z. B. Tabellen oder Spalten) verwendet werden sollen, deren Namen Leerzeichen oder reservierte Token enthalten, oder legt diese fest.

SchemaSeparator

Ruft das als Trennzeichen zwischen dem Schemabezeichner und anderen Bezeichnern zu verwendende Zeichen ab oder legt dieses fest.

SetAllValues

Gibt an, ob alle Spaltenwerte oder nur die geänderten in einer Aktualisierungsanweisung eingeschlossen sind.

(Geerbt von DbCommandBuilder)
Site

Ruft den ISite von Component ab oder legt ihn fest.

(Geerbt von Component)

Methoden

ApplyParameterInfo(DbParameter, DataRow, StatementType, Boolean)

Ermöglicht es der Anbieterimplementierung der DbCommandBuilder-Klasse, zusätzliche Parametereigenschaften zu behandeln.

(Geerbt von DbCommandBuilder)
CreateObjRef(Type)

Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind.

(Geerbt von MarshalByRefObject)
DeriveParameters(SqlCommand)

Ruft Parameterinformationen aus der im SqlCommand angegebenen gespeicherten Prozedur ab und füllt die Parameters-Auflistung des angegebenen SqlCommand-Objekts auf.

Dispose()

Gibt alle vom Component verwendeten Ressourcen frei.

(Geerbt von Component)
Dispose(Boolean)

Gibt die von Component verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.

(Geerbt von Component)
Dispose(Boolean)

Gibt die von DbCommandBuilder verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.

(Geerbt von DbCommandBuilder)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetDeleteCommand()

Ruft das automatisch generierte SqlCommand-Objekt ab, das für die Ausführung von Löschvorgängen in der Datenbank erforderlich ist.

GetDeleteCommand(Boolean)

Ruft das automatisch generierte SqlCommand-Objekt ab, das für die Ausführung von Löschvorgängen in der Datenbank erforderlich ist.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetInsertCommand()

Ruft das automatisch generierte SqlCommand-Objekt ab, das für das Ausführen von Einfügevorgängen in der Datenbank erforderlich ist.

GetInsertCommand(Boolean)

Ruft das automatisch generierte SqlCommand-Objekt ab, das für das Ausführen von Einfügevorgängen in der Datenbank erforderlich ist.

GetLifetimeService()
Veraltet.

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert.

(Geerbt von MarshalByRefObject)
GetParameterName(Int32)

Gibt den Namen des angegebenen Parameters im Format zurück @p#. Verwenden Sie diesen zum Erstellen eines benutzerdefinierten Befehls-Generators.

(Geerbt von DbCommandBuilder)
GetParameterName(String)

Gibt den vollständigen Parameternamen zurück, wenn der partielle Parameternamen angegeben ist.

(Geerbt von DbCommandBuilder)
GetParameterPlaceholder(Int32)

Gibt den Platzhalter für den Parameter in der zugeordneten SQL-Anweisung zurück.

(Geerbt von DbCommandBuilder)
GetSchemaTable(DbCommand)

Gibt die Schematabelle für den DbCommandBuilder zurück.

(Geerbt von DbCommandBuilder)
GetService(Type)

Gibt ein Objekt zurück, das einen von der Component oder von deren Container bereitgestellten Dienst darstellt.

(Geerbt von Component)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
GetUpdateCommand()

Ruft das automatisch generierte SqlCommand-Objekt ab, das für das Ausführen von Aktualisierungen in der Datenbank erforderlich ist.

GetUpdateCommand(Boolean)

Ruft das automatisch generierte SqlCommand-Objekt ab, das für das Ausführen von Aktualisierungen in der Datenbank erforderlich ist.

InitializeCommand(DbCommand)

Legt die Eigenschaften CommandTimeout, Transaction, CommandType und UpdateRowSource für DbCommand erneut fest.

(Geerbt von DbCommandBuilder)
InitializeLifetimeService()
Veraltet.

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.

(Geerbt von MarshalByRefObject)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.

(Geerbt von MarshalByRefObject)
QuoteIdentifier(String)

Bei einem Bezeichner ohne Anführungszeichen in der richtigen Katalogschreibweise wird die korrekte Form des jeweiligen Bezeichners mit Anführungszeichen zurückgegeben. Dies schließt ein, dass eingebettete Anführungszeichen im Bezeichner ordnungsgemäß mit Escapezeichen versehen werden.

RefreshSchema()

Löscht die Befehle, die diesem Befehlsgenerator zugeordnet sind.

RefreshSchema()

Löscht die diesem DbCommandBuilder zugeordneten Befehle.

(Geerbt von DbCommandBuilder)
RowUpdatingHandler(RowUpdatingEventArgs)

Fügt einen Ereignishandler für das RowUpdating-Ereignis hinzu.

(Geerbt von DbCommandBuilder)
SetRowUpdatingHandler(DbDataAdapter)

Registriert den DbCommandBuilder zum Behandeln des RowUpdating-Ereignisses für einen DbDataAdapter.

(Geerbt von DbCommandBuilder)
ToString()

Gibt einen String zurück, der den Namen der Component enthält (sofern vorhanden). Diese Methode darf nicht überschrieben werden.

(Geerbt von Component)
UnquoteIdentifier(String)

Bei einem Bezeichner mit Anführungszeichen wird die korrekte Form dieses Bezeichners ohne Anführungszeichen zurückgegeben. Dies schließt ein, dass eingebettete Anführungszeichen im Bezeichner ordnungsgemäß ohne Escapezeichen verwendet werden.

Ereignisse

Disposed

Tritt auf, wenn die Komponente von einem Aufruf der Dispose()-Methode verworfen wird.

(Geerbt von Component)

Gilt für:

Weitere Informationen