SqlCeCommandBuilder-Klasse

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

Vererbungshierarchie

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.Data.Common.DbCommandBuilder
        System.Data.SqlServerCe.SqlCeCommandBuilder

Namespace:  System.Data.SqlServerCe
Assembly:  System.Data.SqlServerCe (in System.Data.SqlServerCe.dll)

Syntax

'Declaration
Public NotInheritable Class SqlCeCommandBuilder _
    Inherits DbCommandBuilder
'Usage
Dim instance As SqlCeCommandBuilder
public sealed class SqlCeCommandBuilder : DbCommandBuilder
public ref class SqlCeCommandBuilder sealed : public DbCommandBuilder
[<SealedAttribute>]
type SqlCeCommandBuilder =  
    class
        inherit DbCommandBuilder
    end
public final class SqlCeCommandBuilder extends DbCommandBuilder

Der SqlCeCommandBuilder-Typ macht folgende Elemente verfügbar.

Konstruktoren

  Name Beschreibung
Öffentliche Methode SqlCeCommandBuilder() Initialisiert eine neue Instanz der SqlCeCommandBuilder-Klasse.
Öffentliche Methode SqlCeCommandBuilder(SqlCeDataAdapter) Initialisiert eine neue Instanz der SqlCeCommandBuilder-Klasse mit dem zugeordneten SqlCeDataAdapter-Objekt und dem zugeordneten SqlCeCommand-Objekt.

Zum Anfang

Eigenschaften

  Name Beschreibung
Geschützte Eigenschaft CanRaiseEvents (von Component vererbt)
Öffentliche Eigenschaft CatalogLocation Wird in SQL Server Compact nicht unterstützt. (Überschreibt DbCommandBuilder.CatalogLocation.)
Öffentliche Eigenschaft CatalogSeparator Wird in SQL Server Compact nicht unterstützt. (Überschreibt DbCommandBuilder.CatalogSeparator.)
Öffentliche Eigenschaft ConflictOption Gibt an, welche ConflictOption vom SqlCeCommandBuilder verwendet werden muss. (Überschreibt DbCommandBuilder.ConflictOption.)
Öffentliche Eigenschaft Container (von Component vererbt)
Öffentliche Eigenschaft DataAdapter Ruft ein SqlCeDataAdapter-Objekt ab, für das automatisch SQL-Anweisungen generiert werden, oder legt dieses fest.
Geschützte Eigenschaft DesignMode (von Component vererbt)
Geschützte Eigenschaft Events (von Component vererbt)
Öffentliche Eigenschaft QuotePrefix Ruft das oder die Anfangszeichen ab, die beim Angeben von SQL Server-Datenbankobjekten (z. B. Tabellen oder Spalten) verwendet werden sollen, deren Namen Zeichen wie Leerzeichen oder reservierte Token enthalten, oder legt diese fest. (Überschreibt DbCommandBuilder.QuotePrefix.)
Öffentliche Eigenschaft QuoteSuffix Ruft das oder die Beendigungszeichen ab, die beim Angeben von SQL Server-Datenbankobjekten (z. B. Tabellen oder Spalten) verwendet werden sollen, deren Namen Zeichen wie Leerzeichen oder reservierte Token enthalten, oder legt diese fest. (Überschreibt DbCommandBuilder.QuoteSuffix.)
Öffentliche Eigenschaft SchemaSeparator Wird in SQL Server Compact nicht unterstützt. (Überschreibt DbCommandBuilder.SchemaSeparator.)
Öffentliche Eigenschaft SetAllValues (von DbCommandBuilder vererbt)
Öffentliche Eigenschaft Site (von Component vererbt)

Zum Anfang

Methoden

  Name Beschreibung
Geschützte Methode ApplyParameterInfo (von DbCommandBuilder vererbt)
Öffentliche Methode CreateObjRef (von MarshalByRefObject vererbt)
Öffentliche Methode Dispose() (von Component vererbt)
Geschützte Methode Dispose(Boolean) (von DbCommandBuilder vererbt)
Öffentliche Methode Equals (von Object vererbt)
Geschützte Methode Finalize (von Component vererbt)
Öffentliche Methode GetDeleteCommand() Ruft das für Löschvorgänge in der Datenbank erforderliche, automatisch generierte SqlCeCommand-Objekt ab, wenn eine Anwendung Update für SqlCeDataAdapter aufruft.
Öffentliche Methode GetDeleteCommand(Boolean) (von DbCommandBuilder vererbt)
Öffentliche Methode GetHashCode (von Object vererbt)
Öffentliche Methode GetInsertCommand() Ruft das für Einfügevorgänge in der Datenbank erforderliche, automatisch generierte SqlCeCommand-Objekt ab, wenn eine Anwendung die öffentliche Update-Methode für dieSqlCeDataAdapter-Klasse aufruft.
Öffentliche Methode GetInsertCommand(Boolean) (von DbCommandBuilder vererbt)
Öffentliche Methode GetLifetimeService (von MarshalByRefObject vererbt)
Geschützte Methode GetParameterName(Int32) (von DbCommandBuilder vererbt)
Geschützte Methode GetParameterName(String) (von DbCommandBuilder vererbt)
Geschützte Methode GetParameterPlaceholder (von DbCommandBuilder vererbt)
Geschützte Methode GetSchemaTable (von DbCommandBuilder vererbt)
Geschützte Methode GetService (von Component vererbt)
Öffentliche Methode GetType (von Object vererbt)
Öffentliche Methode GetUpdateCommand() Ruft das für Aktualisierungen in der Datenbank erforderliche, automatisch generierte SqlCeCommand-Objekt ab, wenn eine Anwendung die öffentliche Update-Methode für die SqlCeDataAdapter-Klasse aufruft.
Öffentliche Methode GetUpdateCommand(Boolean) (von DbCommandBuilder vererbt)
Geschützte Methode InitializeCommand (von DbCommandBuilder vererbt)
Öffentliche Methode InitializeLifetimeService (von MarshalByRefObject vererbt)
Geschützte Methode MemberwiseClone() (von Object vererbt)
Geschützte Methode MemberwiseClone(Boolean) (von MarshalByRefObject vererbt)
Öffentliche Methode QuoteIdentifier Gibt den angegebenen Bezeichner mit Anführungszeichen im richtigen Format zurück. (Überschreibt DbCommandBuilder.QuoteIdentifier(String).)
Öffentliche Methode RefreshSchema (von DbCommandBuilder vererbt)
Geschützte Methode RowUpdatingHandler (von DbCommandBuilder vererbt)
Geschützte Methode SetRowUpdatingHandler (von DbCommandBuilder vererbt)
Öffentliche Methode ToString (von Component vererbt)
Öffentliche Methode UnquoteIdentifier Gibt den angegebenen Bezeichner ohne Anführungszeichen im richtigen Format zurück. (Überschreibt DbCommandBuilder.UnquoteIdentifier(String).)

Zum Anfang

Ereignisse

  Name Beschreibung
Öffentliches Ereignis Disposed (von Component vererbt)

Zum Anfang

Hinweise

Sie können ein SqlCeCommandBuilder-Objekt erstellen, um Transact-SQL-Anweisungen für das Aktualisieren einzelner Tabellen automatisch zu generieren, indem Sie die SelectCommand-Eigenschaft festlegen.

Der SqlCeCommandBuilder registriert sich selbst als ein Listener für RowUpdating-Ereignisse, wenn Sie die DataAdapter-Eigenschaft festlegen. Einem SqlCeDataAdapter-Objekt kann immer nur ein SqlCeCommandBuilder-Objekt gleichzeitig zugeordnet werden und umgekehrt.

Zum Generieren von INSERT-Anweisungen, UPDATE-Anweisungen und DELETE-Anweisungen verwendet die SqlCeCommandBuilder-Klasse die SelectCommand-Eigenschaft, um einen erforderlichen Satz von Metadaten automatisch abzurufen. Wenn Sie die SelectCommand-Eigenschaft nach dem Abrufen der Metadaten ändern (z. B. nach der ersten Aktualisierung), müssen Sie die RefreshSchema()-Methode aufrufen, um die Metadaten zu aktualisieren.

Die SelectCommand-Eigenschaft muss also mindestens einen Primärschlüssel oder eine eindeutige Spalte zurückgeben. Wenn dies nicht der Fall ist, wird eine InvalidOperation-Ausnahme generiert, aber nicht die Befehle.

Die SqlCeCommandBuilder-Klasse verwendet auch die Connection-Eigenschaft und die Transaction-Eigenschaft, auf die durch die SelectCommand-Eigenschaft verwiesen wird. Sie müssen die öffentliche RefreshSchema()-Methode aufrufen, wenn eine dieser Eigenschaften geändert oder die SelectCommand-Eigenschaft selbst ersetzt wird. Andernfalls behalten die Eigenschaften InsertCommand, UpdateCommand und DeleteCommand ihre vorherigen Werte bei.

Wenn Sie die Dispose()-Methode aufrufen, wird die Zuordnung der SqlCeCommandBuilder-Klasse zur SqlCeDataAdapter-Klasse aufgehoben, und die generierten Befehle werden nicht mehr verwendet.

Beispiele

Im folgenden Beispiel wird die SqlCeCommand-Klasse gemeinsam mit der SqlCeDataAdapter-Klasse und der SqlCeConnection-Klasse zum Auswählen von Zeilen aus einer Datenquelle verwendet. Dem Beispiel wird eine Verbindungszeichenfolge, eine Abfragezeichenfolge und ein Zeichenfolge übergeben, die den Namen der Datenbanktabelle darstellt. Anschließend wird im Beispiel eine SqlCeCommandBuilder-Klasse erstellt. Der Befehlsgenerator wird dann vom Datenadapter verwendet, um das geänderte DataSet in der lokalen Datenbank zu aktualisieren.

Try
    Dim conn As New SqlCeConnection("Data Source = MyDatabase.sdf")
    conn.Open()

    Dim cmd As SqlCeCommand = conn.CreateCommand()
    cmd.CommandText = "SELECT * FROM employees"

    Dim adp As New SqlCeDataAdapter(cmd)

    Dim cb As New SqlCeCommandBuilder()
    cb.DataAdapter = adp

    MessageBox.Show(cb.GetUpdateCommand().CommandText)
    MessageBox.Show(cb.GetInsertCommand().CommandText)
    MessageBox.Show(cb.GetDeleteCommand().CommandText)

    Dim ds As New DataSet("test")
    adp.Fill(ds)

    ' Modify the contents of the DataSet
    '
    ds.Tables(0).Rows(0)("First Name") = "Joe"

    adp.Update(ds)

Catch e1 As Exception
    Console.WriteLine(e1.ToString())
End Try
try
{
    SqlCeConnection conn = new SqlCeConnection("Data Source = MyDatabase.sdf");
    conn.Open();

    SqlCeCommand cmd = conn.CreateCommand();
    cmd.CommandText = "SELECT * FROM employees";

    SqlCeDataAdapter adp = new SqlCeDataAdapter(cmd);

    SqlCeCommandBuilder cb = new SqlCeCommandBuilder();
    cb.DataAdapter = adp;

    MessageBox.Show(cb.GetUpdateCommand().CommandText);
    MessageBox.Show(cb.GetInsertCommand().CommandText);
    MessageBox.Show(cb.GetDeleteCommand().CommandText);

    DataSet ds = new DataSet("test");
    adp.Fill(ds);

    // Modify the contents of the DataSet
    //
    ds.Tables[0].Rows[0]["First Name"] = "Joe";

    adp.Update(ds);

}
catch (Exception e1)
{
    Console.WriteLine(e1.ToString());
}

Threadsicherheit

Alle öffentlichen statischen (in Microsoft Visual Basic freigegebenen) Elemente dieses Typs sind threadsicher. Für Instanzelemente kann nicht sichergestellt werden, dass sie threadsicher sind.

Siehe auch

Verweis

System.Data.SqlServerCe-Namespace