SqlDataAdapter Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
, Update
lub Delete
). W zależności od typu zmiany Insert
szablon polecenia , Update
lub 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 InsertCommand
elementu , UpdateCommand
lub 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. |