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 | |
---|---|---|
SqlCeCommandBuilder() | Initialisiert eine neue Instanz der SqlCeCommandBuilder-Klasse. | |
SqlCeCommandBuilder(SqlCeDataAdapter) | Initialisiert eine neue Instanz der SqlCeCommandBuilder-Klasse mit dem zugeordneten SqlCeDataAdapter-Objekt und dem zugeordneten SqlCeCommand-Objekt. |
Zum Anfang
Eigenschaften
Name | Beschreibung | |
---|---|---|
CanRaiseEvents | (von Component vererbt) | |
CatalogLocation | Wird in SQL Server Compact nicht unterstützt. (Überschreibt DbCommandBuilder.CatalogLocation.) | |
CatalogSeparator | Wird in SQL Server Compact nicht unterstützt. (Überschreibt DbCommandBuilder.CatalogSeparator.) | |
ConflictOption | Gibt an, welche ConflictOption vom SqlCeCommandBuilder verwendet werden muss. (Überschreibt DbCommandBuilder.ConflictOption.) | |
Container | (von Component vererbt) | |
DataAdapter | Ruft ein SqlCeDataAdapter-Objekt ab, für das automatisch SQL-Anweisungen generiert werden, oder legt dieses fest. | |
DesignMode | (von Component vererbt) | |
Events | (von Component vererbt) | |
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.) | |
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.) | |
SchemaSeparator | Wird in SQL Server Compact nicht unterstützt. (Überschreibt DbCommandBuilder.SchemaSeparator.) | |
SetAllValues | (von DbCommandBuilder vererbt) | |
Site | (von Component vererbt) |
Zum Anfang
Methoden
Name | Beschreibung | |
---|---|---|
ApplyParameterInfo | (von DbCommandBuilder vererbt) | |
CreateObjRef | (von MarshalByRefObject vererbt) | |
Dispose() | (von Component vererbt) | |
Dispose(Boolean) | (von DbCommandBuilder vererbt) | |
Equals | (von Object vererbt) | |
Finalize | (von Component vererbt) | |
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. | |
GetDeleteCommand(Boolean) | (von DbCommandBuilder vererbt) | |
GetHashCode | (von Object vererbt) | |
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. | |
GetInsertCommand(Boolean) | (von DbCommandBuilder vererbt) | |
GetLifetimeService | (von MarshalByRefObject vererbt) | |
GetParameterName(Int32) | (von DbCommandBuilder vererbt) | |
GetParameterName(String) | (von DbCommandBuilder vererbt) | |
GetParameterPlaceholder | (von DbCommandBuilder vererbt) | |
GetSchemaTable | (von DbCommandBuilder vererbt) | |
GetService | (von Component vererbt) | |
GetType | (von Object vererbt) | |
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. | |
GetUpdateCommand(Boolean) | (von DbCommandBuilder vererbt) | |
InitializeCommand | (von DbCommandBuilder vererbt) | |
InitializeLifetimeService | (von MarshalByRefObject vererbt) | |
MemberwiseClone() | (von Object vererbt) | |
MemberwiseClone(Boolean) | (von MarshalByRefObject vererbt) | |
QuoteIdentifier | Gibt den angegebenen Bezeichner mit Anführungszeichen im richtigen Format zurück. (Überschreibt DbCommandBuilder.QuoteIdentifier(String).) | |
RefreshSchema | (von DbCommandBuilder vererbt) | |
RowUpdatingHandler | (von DbCommandBuilder vererbt) | |
SetRowUpdatingHandler | (von DbCommandBuilder vererbt) | |
ToString | (von Component vererbt) | |
UnquoteIdentifier | Gibt den angegebenen Bezeichner ohne Anführungszeichen im richtigen Format zurück. (Überschreibt DbCommandBuilder.UnquoteIdentifier(String).) |
Zum Anfang
Ereignisse
Name | Beschreibung | |
---|---|---|
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.