SqlDataAdapter 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.
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 Update
Delete
). Je nach Änderungstyp wird die Insert
Befehlsvorlage , Update
oder 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, UpdateCommand
DeleteCommand
oder 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. |