Udostępnij za pośrednictwem


SqlDataAdapter Klasa

Definicja

Reprezentuje zestaw poleceń danych i połączenie bazy danych używane do wypełniania DataSet i aktualizowania bazy danych SQL Server. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
SqlDataAdapter
Implementuje

Przykłady

W poniższym przykładzie użyto elementu SqlCommand, SqlDataAdapteri SqlConnection do wybrania rekordów z bazy danych i wypełnienia DataSet wartością z wybranymi wierszami. Następnie zostanie zwrócony wypełniony DataSet . Aby to osiągnąć, metoda jest przekazywana zainicjowana DataSet, parametry połączenia i parametry zapytania, które są instrukcją Transact-SQL SELECT.

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;
        }
    }
}

Uwagi

Element SqlDataAdapter, służy jako most między SQL Server a DataSet na potrzeby pobierania i zapisywania danych. Ten SqlDataAdapter most zapewnia mapowanie Fill, które zmienia dane w obiekcie tak DataSet , aby odpowiadały danym w źródle danych i Update, które zmienia dane w źródle danych, aby pasować do danych w elemecie DataSet, przy użyciu odpowiednich instrukcji Języka Transact-SQL względem źródła danych. Aktualizacja jest wykonywana według wierszy. Dla każdego wstawionego, zmodyfikowanego i usuniętego wiersza Update metoda określa typ zmiany, która została wykonana na nim (Insert, Updatelub Delete). W zależności od typu zmiany Insertszablon polecenia , Updatelub Delete jest wykonywany w celu propagowania zmodyfikowanego wiersza do źródła danych. Po wypełnieniu SqlDataAdapter elementu DataSetelement tworzy niezbędne tabele i kolumny dla zwracanych danych, jeśli jeszcze nie istnieją. Jednak informacje o kluczu podstawowym nie są uwzględniane w niejawnie utworzonym schemacie, chyba że właściwość jest ustawiona MissingSchemaAction na AddWithKey. Być może masz SqlDataAdapter również utworzony schemat DataSetelementu , w tym podstawowe informacje o kluczu, przed wypełnieniem go danymi przy użyciu polecenia FillSchema. Aby uzyskać więcej informacji, zobacz Dodawanie istniejących ograniczeń do zestawu danych.

SqlDataAdapterjest używany w połączeniu z i SqlConnectionSqlCommand w celu zwiększenia wydajności podczas nawiązywania połączenia z bazą danych SQL Server.

Uwaga

Jeśli używasz SQL Server procedur składowanych do edytowania lub usuwania danych przy użyciu elementu DataAdapter, upewnij się, że nie używasz funkcji SET NOCOUNT ON w definicji procedury składowanej. Powoduje to, że liczba wierszy, których dotyczy problem, zwraca wartość zero, która DataAdapter jest interpretowana jako konflikt współbieżności. W tym przypadku DBConcurrencyException zostanie zgłoszony element .

Zawiera SqlDataAdapter również SelectCommandwłaściwości , , InsertCommandDeleteCommand, UpdateCommand, i TableMappings w celu ułatwienia ładowania i aktualizowania danych.

Po utworzeniu SqlDataAdapter wystąpienia właściwości odczytu/zapisu są ustawione na wartości początkowe. Aby uzyskać listę tych wartości, zobacz SqlDataAdapter konstruktor.

DeleteCommand, InsertCommandi UpdateCommand są szablonami ogólnymi, które są automatycznie wypełniane poszczególnymi wartościami z każdego zmodyfikowanego wiersza za pośrednictwem mechanizmu parametrów.

Dla każdej kolumny, która jest propagowana do źródła danych w systemie Update, parametr powinien zostać dodany do InsertCommandelementu , UpdateCommandlub DeleteCommand. Właściwość SourceColumnDbParameter obiektu powinna być ustawiona na nazwę kolumny. To ustawienie wskazuje, że wartość parametru nie jest ustawiana ręcznie, ale jest pobierana z określonej kolumny w aktualnie przetworzonym wierszu.

Uwaga

Wystąpi InvalidOperationException , jeśli Fill metoda jest wywoływana, a tabela zawiera typ zdefiniowany przez użytkownika, który nie jest dostępny na komputerze klienckim. Aby uzyskać więcej informacji, zobacz CLR User-Defined Types (Typy User-Defined CLR).

Konstruktory

SqlDataAdapter()

Inicjuje nowe wystąpienie klasy SqlDataAdapter.

SqlDataAdapter(SqlCommand)

Inicjuje SqlDataAdapter nowe wystąpienie klasy z określoną SqlCommand właściwością SelectCommand .

SqlDataAdapter(String, SqlConnection)

Inicjuje SqlDataAdapter nowe wystąpienie klasy z SelectCommand obiektem SqlConnection i.

SqlDataAdapter(String, String)

Inicjuje SqlDataAdapter nowe wystąpienie klasy z parametrami SelectCommand połączenia i.

Właściwości

DeleteCommand

Pobiera lub ustawia instrukcję Języka Transact-SQL lub procedurę składowaną w celu usunięcia rekordów z zestawu danych.

InsertCommand

Pobiera lub ustawia instrukcję Języka Transact-SQL lub procedurę składowaną, aby wstawić nowe rekordy do źródła danych.

SelectCommand

Pobiera lub ustawia instrukcję Języka Transact-SQL lub procedurę składowaną używaną do wybierania rekordów w źródle danych.

UpdateBatchSize

Pobiera lub ustawia liczbę wierszy przetwarzanych w każdej rundzie na serwerze.

UpdateCommand

Pobiera lub ustawia instrukcję Języka Transact-SQL lub procedurę składowaną używaną do aktualizowania rekordów w źródle danych.

Zdarzenia

RowUpdated

Występuje podczas Update(DataSet) wykonywania polecenia względem źródła danych. Podjęto próbę aktualizacji, więc zdarzenie zostanie wyzwolone.

RowUpdating

Występuje podczas Update(DataSet) wykonywania polecenia względem źródła danych. Podjęto próbę aktualizacji, więc zdarzenie zostanie wyzwolone.

Jawne implementacje interfejsu

ICloneable.Clone()

Aby uzyskać opis tego elementu członkowskiego, zobacz Clone().

IDbDataAdapter.DeleteCommand

Aby uzyskać opis tego elementu członkowskiego, zobacz DeleteCommand.

IDbDataAdapter.InsertCommand

Aby uzyskać opis tego elementu członkowskiego, zobacz InsertCommand.

IDbDataAdapter.SelectCommand

Aby uzyskać opis tego elementu członkowskiego, zobacz SelectCommand.

IDbDataAdapter.UpdateCommand

Aby uzyskać opis tego elementu członkowskiego, zobacz UpdateCommand.

Dotyczy