SqlCommandBuilder Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Generiert automatisch Einzeltabellenbefehle, die verwendet werden, um änderungen an einer DataSet mit der zugeordneten SQL Server-Datenbank vorgenommenen Änderungen abzugleichen. 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
- Vererbung
Beispiele
Im folgenden Beispiel werden die SqlCommandZeilen aus einer Datenquelle zusammen mit SqlDataAdapter und SqlConnectionzum Auswählen von Zeilen aus einer Datenquelle verwendet. Das Beispiel wird eine Verbindungszeichenfolge, eine Abfragezeichenfolge, die eine Transact-SQL SELECT-Anweisung ist, und eine Zeichenfolge übergeben, die den Namen der Datenbanktabelle darstellt. Anschließend wird ein SqlCommandBuilder.
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
Die SqlDataAdapter Transact-SQL Anweisungen, die zum Abgleichen von Änderungen an einer DataSet mit der zugeordneten Instanz von SQL Server vorgenommenen Änderungen erforderlich sind, werden nicht automatisch generiert. Sie können jedoch ein SqlCommandBuilder Objekt erstellen, um automatisch Transact-SQL Anweisungen für Einzeltabellenaktualisierungen zu generieren, wenn Sie die SelectCommand Eigenschaft der SqlDataAdapter. Anschließend werden alle zusätzlichen Transact-SQL Anweisungen, die Sie nicht festlegen, von der SqlCommandBuilder.
Das SqlCommandBuilder Register selbst wird als Listener für RowUpdating Ereignisse registriert, wenn Sie die DataAdapter Eigenschaft festlegen. Sie können jeweils nur ein objekt oder SqlCommandBuilder ein SqlDataAdapter Objekt miteinander verknüpfen.
Zum Generieren von INSERT-, UPDATE- oder DELETE-Anweisungen verwendet SelectCommand die SqlCommandBuilder Eigenschaft, um automatisch einen erforderlichen Satz von Metadaten abzurufen. Wenn Sie die SelectCommand Metadaten ä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.
Dies SqlCommandBuilder verwendet auch die Connectioneigenschaften, TransactionCommandTimeoutauf die durch die SelectCommand. Der Benutzer sollte aufrufen RefreshSchema , ob eine oder mehrere dieser Eigenschaften geändert werden, oder wenn der SelectCommand benutzer selbst ersetzt wird. Andernfalls behalten die InsertCommandEigenschaften UpdateCommanddie DeleteCommand vorherigen Werte bei.
Wenn Sie aufrufen Dispose, wird die SqlCommandBuilder Zuordnung des Befehls aufgehoben SqlDataAdapter, und die generierten Befehle werden nicht mehr verwendet.
Konstruktoren
| Name | Beschreibung |
|---|---|
| SqlCommandBuilder() |
Initialisiert eine neue Instanz der SqlCommandBuilder-Klasse. |
| SqlCommandBuilder(SqlDataAdapter) |
Initialisiert eine neue Instanz der SqlCommandBuilder Klasse mit dem zugeordneten SqlDataAdapter Objekt. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| CanRaiseEvents |
Ruft einen Wert ab, der angibt, ob die Komponente ein Ereignis auslösen kann. (Geerbt von Component) |
| CatalogLocation |
Dient zum Abrufen oder Festlegen der CatalogLocation Für eine Instanz der SqlCommandBuilder Klasse. |
| CatalogSeparator |
Dient zum Abrufen oder Festlegen einer Zeichenfolge, die als Katalogtrennzeichen für eine Instanz der SqlCommandBuilder Klasse verwendet wird. |
| ConflictOption |
Gibt an, welche ConflictOption von der DbCommandBuilder. (Geerbt von DbCommandBuilder) |
| Container |
Ruft das, das IContainer die Component. (Geerbt von Component) |
| DataAdapter |
Dient zum Abrufen oder Festlegen eines SqlDataAdapter Objekts, für das Transact-SQL-Anweisungen automatisch generiert werden. |
| DesignMode |
Ruft einen Wert ab, der angibt, ob sich der Component Entwurfsmodus derzeit befindet. (Geerbt von Component) |
| Events |
Ruft die Liste der Ereignishandler ab, die an diese Componentangefügt sind. (Geerbt von Component) |
| QuotePrefix |
Ruft ab oder legt das Startzeichen oder Zeichen fest, das beim Angeben von SQL Server-Datenbankobjekten verwendet werden soll, z. B. Tabellen oder Spalten, deren Namen Zeichen wie Leerzeichen oder reservierte Token enthalten. |
| QuoteSuffix |
Ruft ab oder legt das endende Zeichen oder Zeichen fest, das beim Angeben von SQL Server-Datenbankobjekten verwendet werden soll, z. B. Tabellen oder Spalten, deren Namen Zeichen wie Leerzeichen oder reservierte Token enthalten. |
| SchemaSeparator |
Dient zum Abrufen oder Festlegen des Zeichens, das für das Trennzeichen zwischen dem Schemabezeichner und anderen Bezeichnern verwendet werden soll. |
| SetAllValues |
Gibt an, ob alle Spaltenwerte in einer Update-Anweisung enthalten oder nur geändert werden. (Geerbt von DbCommandBuilder) |
| Site |
Dient zum ISite Abrufen oder Festlegen des Werts des Component. (Geerbt von Component) |
Methoden
| Name | Beschreibung |
|---|---|
| ApplyParameterInfo(DbParameter, DataRow, StatementType, Boolean) |
Ermöglicht der Anbieterimplementierung der DbCommandBuilder Klasse, zusätzliche Parametereigenschaften zu verarbeiten. (Geerbt von DbCommandBuilder) |
| CreateObjRef(Type) |
Erstellt ein Objekt, das alle relevanten Informationen enthält, die zum Generieren eines Proxys erforderlich sind, der für die Kommunikation mit einem Remoteobjekt verwendet wird. (Geerbt von MarshalByRefObject) |
| DeriveParameters(SqlCommand) |
Ruft Parameterinformationen aus der gespeicherten Prozedur ab, die in der SqlCommand angegebenen Prozedur angegeben ist, und füllt die Parameters Auflistung des angegebenen SqlCommand Objekts auf. |
| Dispose() |
Veröffentlicht alle ressourcen, die von der Component. (Geerbt von Component) |
| Dispose(Boolean) |
Gibt die nicht verwalteten Ressourcen frei, die von den Component verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei. (Geerbt von Component) |
| Dispose(Boolean) |
Gibt die nicht verwalteten Ressourcen frei, die von den DbCommandBuilder verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei. (Geerbt von DbCommandBuilder) |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetDeleteCommand() |
Ruft das automatisch generierte SqlCommand Objekt ab, das zum Ausführen von Löschungen in der Datenbank erforderlich ist. |
| GetDeleteCommand(Boolean) |
Ruft das automatisch generierte SqlCommand Objekt ab, das zum Ausführen von Löschungen in der Datenbank erforderlich ist. |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetInsertCommand() |
Ruft das automatisch generierte SqlCommand Objekt ab, das zum Ausführen von Einfügungen in die Datenbank erforderlich ist. |
| GetInsertCommand(Boolean) |
Ruft das automatisch generierte SqlCommand Objekt ab, das zum Ausführen von Einfügungen in die Datenbank erforderlich ist. |
| GetLifetimeService() |
Veraltet.
Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinie für diese Instanz steuert. (Geerbt von MarshalByRefObject) |
| GetParameterName(Int32) |
Gibt den Namen des angegebenen Parameters im Format von |
| GetParameterName(String) |
Gibt den vollständigen Parameternamen zurück, wobei der Teilparametername 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 die DbCommandBuilder. (Geerbt von DbCommandBuilder) |
| GetService(Type) |
Gibt ein Objekt zurück, das einen Dienst darstellt, der von der Component oder dem zugehörigen ContainerDienst bereitgestellt wird. (Geerbt von Component) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| GetUpdateCommand() |
Ruft das automatisch generierte SqlCommand Objekt ab, das zum Ausführen von Aktualisierungen in der Datenbank erforderlich ist. |
| GetUpdateCommand(Boolean) |
Ruft das automatisch generierte SqlCommand Objekt ab, das zum Ausführen von Aktualisierungen in der Datenbank erforderlich ist. |
| InitializeCommand(DbCommand) |
Setzt die CommandTimeoutEigenschaften TransactionCommandType, und UpdateRowSource Eigenschaften für die DbCommand. (Geerbt von DbCommandBuilder) |
| InitializeLifetimeService() |
Veraltet.
Ruft ein Lebensdauerdienstobjekt ab, um die Lebensdauerrichtlinie für diese Instanz zu steuern. (Geerbt von MarshalByRefObject) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| MemberwiseClone(Boolean) |
Erstellt eine flache Kopie des aktuellen MarshalByRefObject Objekts. (Geerbt von MarshalByRefObject) |
| QuoteIdentifier(String) |
Wenn im richtigen Katalogfall ein nicht angibter Bezeichner angegeben wird, wird die richtige Form dieses Bezeichners zurückgegeben. Dazu gehört, dass alle eingebetteten Anführungszeichen im Bezeichner korrekt entfernt werden. |
| RefreshSchema() |
Löscht die Befehle, die diesem Befehls-Generator zugeordnet sind. |
| RefreshSchema() |
Löscht die befehle, die diesem DbCommandBuilderzugeordnet sind. (Geerbt von DbCommandBuilder) |
| RowUpdatingHandler(RowUpdatingEventArgs) |
Fügt einen Ereignishandler für das RowUpdating -Ereignis hinzu. (Geerbt von DbCommandBuilder) |
| SetRowUpdatingHandler(DbDataAdapter) |
Registriert das DbCommandBuilder Ereignis zum Behandeln des RowUpdating Ereignisses für ein DbDataAdapter. (Geerbt von DbCommandBuilder) |
| ToString() |
Gibt einen String mit dem Namen des Component, falls vorhanden, zurück. Diese Methode sollte nicht außer Kraft gesetzt werden. (Geerbt von Component) |
| UnquoteIdentifier(String) |
Gibt bei einem bezeichner mit Anmerkung die richtige nicht zitierte Form dieses Bezeichners zurück. Dazu gehört, dass alle eingebetteten Anführungszeichen im Bezeichner korrekt entpackt werden. |
Ereignisse
| Name | Beschreibung |
|---|---|
| Disposed |
Tritt auf, wenn die Komponente durch einen Aufruf der Dispose() Methode verworfen wird. (Geerbt von Component) |