Share via


Dialogfeld "Erweiterte SQL-Generierungsoptionen"

In diesem Dialogfeld können Sie steuern, wie SQL-Anweisungen oder gespeicherte Prozeduren für einen Adapter erstellt werden. Das Dialogfeld wird angezeigt, wenn Sie auf der Seite SQL-Anweisungen eines der Datenassistenten auf die Schaltfläche Erweiterte Optionen klicken. Die Optionen in diesem Dialogfeld beziehen sich auf die Anweisungen oder Prozeduren, die im Rahmen einer Aktualisierungsprozedur aufgerufen werden (z. B. CustomersTableAdapter.Update(DataTable)).

Elementliste der Benutzeroberfläche

  • Insert-, Update- und Delete-Anweisungen generieren
    Wenn Sie dieses Kontrollkästchen aktivieren, erstellt der Assistent SQL-Anweisungen oder gespeicherte Prozeduren für die Objekte UpdateCommand, InsertCommand und DeleteCommand des Adapters. (Die Einzelheiten für die zu generierende Anweisung oder Prozedur werden im Bereich Abfragetyp auswählen des Assistenten festgelegt.) Wenn dieses Kontrollkästchen deaktiviert ist, sind die übrigen Optionen im Dialogfeld deaktiviert, da sie nicht anwendbar sind.

    Dieses Kontrollkästchen sollte in folgenden Situationen deaktiviert werden:

    • Der Adapter wird nur zum Lesen von Daten aus einer Datenquelle verwendet, nicht jedoch zum Zurückschreiben der Daten. Durch Deaktivieren dieses Kontrollkästchens reduzieren Sie den Codeumfang in dem Formular oder der Komponente.

    • Sie fügen die Befehle nach Beendigung des Assistenten selbst ein.

    Wenn das Kästchen deaktiviert ist und keine Anweisungen oder gespeicherten Prozeduren für die Objekte UpdateCommand, InsertCommand oder DeleteCommand vorliegen, bleibt der Aufruf der Update-Methode des Datenadapters ohne Auswirkung.

  • Vollständige Parallelität verwenden
    Wenn Sie dieses Kontrollkästchen aktivieren, generiert der Assistent einen SQL‑Befehl mit einer WHERE-Klausel, der den Wert jeder Spalte in dem zu aktualisierenden Datensatz dem entsprechenden Datensatz in der Datenbank zuordnet.

    Tipp

    Diese Option ist nur verfügbar, wenn das Kontrollkästchen Insert-, Update- und Delete-Anweisungen generieren aktiviert ist.

    Die Syntax für eine mit dieser Option generierte Update-Anweisung kann z. B. wie folgt lauten:

    UPDATE Customers
    SET CustomerID = ?, CompanyName = ?, Phone = ?
    WHERE (CustomerID = ?) AND (CompanyName = ?) AND 
          (Phone = ? OR ? IS NULL AND Phone IS NULL);
    

    Wenn dieses Kontrollkästchen deaktiviert ist, sieht die Syntax wie folgt aus:

    UPDATE Customers
    SET CustomerID = ?, CompanyName = ?, Phone = ?
    WHERE (CustomerID = ?)
    

    Das Überprüfen der einzelnen Spaltenwerte hat zur Folge, dass Fehler bei der Anweisung auftreten, wenn sich eine beliebige Spalte geändert hat. Dies ist der Fall, wenn ein anderer Benutzer den Datensatz geändert hat, seit dieser in das Dataset eingelesen wurde. Wenn diese Option nicht gewählt wird und die WHERE-Klausel den Datensatz einfach nur lokalisiert, können die Änderungen anderer Benutzer durch eine Aktualisierung u. U. ohne Warnung überschrieben werden.

    Weitere Informationen zur Parallelitätsprüfung bei der Aktualisierung aus einem Dataset finden Sie unter Einführung in die Datenparallelität in ADO.NET.

  • Datentabelle aktualisieren
    Wenn Sie dieses Kontrollkästchen aktivieren, generiert der Assistent eine Select-Anweisung für jeden Update- und Insert-Befehl.

    Tipp

    Diese Option ist nur verfügbar, wenn das Kontrollkästchen Insert-, Update- und Delete-Anweisungen generieren aktiviert ist.

    Die Select-Anweisung wird dem entsprechenden Befehlsobjekt im Adapter hinzugefügt und unmittelbar nach Abschluss des Update- oder Insert-Befehls ausgeführt. Die Select-Anweisung ist so konfiguriert, dass sie nur einen Datensatz zurückgibt, nämlich die aktualisierte Version des Datensatzes, der gerade aktualisiert wurde.

    Tipp

    Der CommandText-Eigenschaft des Befehlsobjekts eines Adapters können mehrere Anweisungen hinzugefügt werden, indem Sie die Anweisungen durch ein Semikolon (;) voneinander trennen.

    Durch Abrufen einer neuen Version des Datensatzes werden aktualisierte Spaltenwerte für diesen Datensatz in das Dataset geschrieben. Hierzu gehören

    • Spalten, in die die Datenbank einen Standardwert lädt

    • Automatisch inkrementierte Spalten

    • Timestampspalten

    • Spalten, die durch das Ergebnis eines Datenbanktriggers beeinflusst werden

    Da durch diese Option zwei Anweisungen für jede Aktualisierung ausgeführt werden (die Update-Anweisung und eine nachfolgende Select-Anweisung), kann sie ineffizient sein, wenn in einem Dataset die Mehrzahl der Datensätze aktualisiert werden. In diesem Fall ist es effizienter, die gesamte Datentabelle auf einmal erneut zu füllen, nachdem alle Aktualisierungen durchgeführt worden sind.

    Tipp

    Die Aktualisierung der Datentabelle wird nur von Datenbanken unterstützt, die die Erstellung eines Batches von SQL-Anweisungen unterstützen. Beispielsweise kann Microsoft Access die Datentabelle nicht mit demselben Befehl aktualisieren, der andere Operationen ausführt.

Siehe auch

Konzepte

Neues in der Datenanwendungsentwicklung

Binden von Windows Forms-Steuerelementen an Daten in Visual Studio

Binden von Steuerelementen an Daten in Visual Studio

Weitere Ressourcen

Exemplarische Vorgehensweisen zur Arbeit mit Daten

Herstellen von Datenverbindungen in Visual Studio

Vorbereiten der Anwendung auf den Empfang von Daten

Abrufen von Daten für die Anwendung

Bearbeiten von Daten in der Anwendung

Überprüfen von Daten

Speichern von Daten