Freigeben über


SqlDataAdapter Klasse

Definition

Stellt einen Satz von Datenbefehlen und eine Datenbankverbindung dar, die verwendet werden, um das DataSet aufzufüllen und eine SQL Server-Datenbank zu aktualisieren. Diese Klasse kann nicht vererbt werden.

public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable, System::Data::IDataAdapter, System::Data::IDbDataAdapter
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable, System.Data.IDataAdapter, System.Data.IDbDataAdapter
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter
type SqlDataAdapter = class
    inherit DbDataAdapter
    interface IDbDataAdapter
    interface IDataAdapter
    interface ICloneable
type SqlDataAdapter = class
    inherit DbDataAdapter
    interface IDataAdapter
    interface IDbDataAdapter
    interface ICloneable
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable, IDataAdapter, IDbDataAdapter
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Vererbung
SqlDataAdapter
Implementiert

Beispiele

Im folgenden Beispiel werden datensätze SqlCommandSqlDataAdapterSqlConnection aus einer Datenbank ausgewählt und mit den ausgewählten Zeilen aufgefülltDataSet. Die ausgefüllte DataSet wird dann zurückgegeben. Um dies zu erreichen, wird der -Methode eine initialisierte DataSet, eine Verbindungszeichenfolge und eine Abfragezeichenfolge übergeben, bei der es sich um eine Transact-SQL SELECT-Anweisung handelt.

using Microsoft.Data.SqlClient;
using System.Xml;
using System.Data.Common;
using System.Windows.Forms;

public class Form1 : Form
{
    protected DataSet DataSet1;
    protected DataGrid dataGrid1;

    private static DataSet SelectRows(DataSet dataset,
        string connectionString, string queryString)
    {
        using (SqlConnection connection =
            new SqlConnection(connectionString))
        {
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = new SqlCommand(
                queryString, connection);
            adapter.Fill(dataset);
            return dataset;
        }
    }
}

Hinweise

Dient SqlDataAdapterals Brücke zwischen einem DataSet und SQL Server zum Abrufen und Speichern von Daten. Stellt SqlDataAdapter diese Brücke bereit, indem Filldie Daten in zugeordnet DataSet werden, damit sie den Daten in der Datenquelle entsprechen, und Update, wodurch die Daten in der Datenquelle so geändert werden, dass sie mit den Daten in der DataSetübereinstimmen, wobei die entsprechenden Transact-SQL-Anweisungen für die Datenquelle verwendet werden. Die Aktualisierung erfolgt zeilenweise. Für jede eingefügte, geänderte und gelöschte Zeile bestimmt die Update Methode den Typ der Änderung, die für sie ausgeführt wurde (Insert, oder UpdateDelete). Je nach Änderungstyp wird die InsertBefehlsvorlage , Updateoder Delete ausgeführt, um die geänderte Zeile an die Datenquelle zu verteilen. Wenn die SqlDataAdapter einen DataSetfüllt, werden die erforderlichen Tabellen und Spalten für die zurückgegebenen Daten erstellt, sofern sie noch nicht vorhanden sind. Primärschlüsselinformationen sind jedoch nicht im implizit erstellten Schema enthalten, es sei denn, die MissingSchemaAction Eigenschaft ist auf AddWithKeyfestgelegt. Sie können auch das SqlDataAdapter Schema von DataSeterstellen, einschließlich Primärschlüsselinformationen, bevor Sie es mit Daten füllen FillSchema. Weitere Informationen finden Sie unter Hinzufügen vorhandener Einschränkungen zu einem DataSet.

SqlDataAdapterwird in Verbindung mit und SqlCommand verwendet, um die Leistung beim Herstellen einer Verbindung mit SqlConnection einer SQL Server-Datenbank zu erhöhen.

Hinweis

Wenn Sie zum Bearbeiten oder Löschen von Daten mit einem DataAdapter gespeicherte SQL Server-Prozeduren verwenden, müssen Sie sicherstellen, dass in der Definition der gespeicherten Prozedur nicht SET NOCOUNT ON verwendet wird. Anderenfalls ist die zurückgegebene Anzahl der betroffenen Zeilen gleich Null (0), was der DataAdapter als Parallelitätskonflikt interpretiert. In diesem Fall wird eine DBConcurrencyException ausgelöst.

Die SqlDataAdapter enthält auch die SelectCommandEigenschaften , InsertCommand, DeleteCommand, UpdateCommandund TableMappings , um das Laden und Aktualisieren von Daten zu erleichtern.

Wenn eine Instanz von SqlDataAdapter erstellt wird, werden die Lese-/Schreibeigenschaften auf Anfangswerte festgelegt. Eine Liste dieser Werte finden Sie im SqlDataAdapter Konstruktor.

Die InsertCommand, , DeleteCommandund UpdateCommand sind generische Vorlagen, die automatisch mit einzelnen Werten aus jeder geänderten Zeile über den Parametermechanismus gefüllt werden.

Für jede Spalte, die Sie an die Datenquelle weitergebenUpdate, sollte ein Parameter hinzugefügt werden, UpdateCommandDeleteCommandoder InsertCommand. Die SourceColumn -Eigenschaft des DbParameter -Objekts sollte auf den Namen der Spalte festgelegt werden. Diese Einstellung gibt an, dass der Wert des Parameters nicht manuell festgelegt wird, sondern aus der bestimmten Spalte in der aktuell verarbeiteten Zeile übernommen wird.

Hinweis

Ein InvalidOperationException tritt auf, wenn die Fill Methode aufgerufen wird und die Tabelle einen benutzerdefinierten Typ enthält, der auf dem Clientcomputer nicht verfügbar ist. Weitere Informationen finden Sie unter Benutzerdefinierte CLR-Typen.

Konstruktoren

SqlDataAdapter()

Initialisiert eine neue Instanz der SqlDataAdapter-Klasse.

SqlDataAdapter(SqlCommand)

Initialisiert eine neue Instanz der SqlDataAdapter-Klasse mit dem angegebenen SqlCommand als SelectCommand-Eigenschaft.

SqlDataAdapter(String, SqlConnection)

Initialisiert eine neue Instanz der SqlDataAdapter-Klasse mit einem SelectCommand und einem SqlConnection-Objekt.

SqlDataAdapter(String, String)

Initialisiert eine neue Instanz der SqlDataAdapter-Klasse mit einem SelectCommand und einer Verbindungszeichenfolge.

Eigenschaften

DeleteCommand

Ruft eine Transact-SQL-Anweisung oder gespeicherte Prozedur ab, um Datensätze aus dem Dataset zu löschen, oder legt diese fest.

InsertCommand

Ruft eine Transact-SQL-Anweisung oder gespeicherte Prozedur ab, um neue Datensätze in die Datenquelle einzufügen, oder legt diese fest.

SelectCommand

Ruft eine Transact-SQL-Anweisung oder gespeicherte Prozedur ab, um Datensätze in der Datenquelle auszuwählen, oder legt diese fest.

UpdateBatchSize

Ruft die Anzahl der Zeilen ab, die in jedem Round-Trip zum Server verarbeitet werden, oder legt die Anzahl fest.

UpdateCommand

Ruft eine Transact-SQL-Anweisung oder gespeicherte Prozedur ab, um Datensätze in der Datenquelle zu aktualisieren, oder legt diese fest.

Ereignisse

RowUpdated

Tritt während der Ausführung von Update(DataSet) ein, nachdem ein Befehl für die Datenquelle ausgeführt wurde. Es wird eine Aktualisierung versucht, also wird das Ereignis ausgelöst.

RowUpdating

Tritt während der Ausführung von Update(DataSet) ein, bevor ein Befehl für die Datenquelle ausgeführt wird. Es wird eine Aktualisierung versucht, also wird das Ereignis ausgelöst.

Explizite Schnittstellenimplementierungen

ICloneable.Clone()

Eine Beschreibung dieses Elements finden Sie unter Clone().

IDbDataAdapter.DeleteCommand

Eine Beschreibung dieses Elements finden Sie unter DeleteCommand.

IDbDataAdapter.InsertCommand

Eine Beschreibung dieses Elements finden Sie unter InsertCommand.

IDbDataAdapter.SelectCommand

Eine Beschreibung dieses Elements finden Sie unter SelectCommand.

IDbDataAdapter.UpdateCommand

Eine Beschreibung dieses Elements finden Sie unter UpdateCommand.

Gilt für: