SqlDataAdapter Класс

Определение

Представляет набор команд данных и подключение к базе данных, которые используются для заполнения DataSet и обновления базы данных SQL Server. Этот класс не наследуется.

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
Наследование
SqlDataAdapter
Реализации

Примеры

В следующем примере используются SqlCommand, SqlDataAdapterи SqlConnection для выбора записей из базы данных и заполнения выделенными DataSet строками. Затем возвращается заполненное DataSet . Для этого методу передаются инициализированные DataSet, строка подключения и строка запроса, которая является инструкцией 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;
        }
    }
}

Комментарии

Объект SqlDataAdapterслужит мостом между DataSet и SQL Server для получения и сохранения данных. Обеспечивает SqlDataAdapter этот мост путем сопоставления Fill, который изменяет данные в DataSet , чтобы соответствовать данным в источнике данных, и Update, который изменяет данные в источнике данных в соответствии с данными в DataSet, используя соответствующие инструкции Transact-SQL для источника данных. Обновление выполняется построчно. Для каждой вставленной, измененной и удаленной строки метод определяет тип изменений, Update выполненных в ней (Insert, Updateили Delete). В зависимости от типа изменения Insert, шаблон команды , Updateили Delete выполняется для распространения измененной строки в источник данных. SqlDataAdapter Когда объект заполняет DataSet, он создает необходимые таблицы и столбцы для возвращаемых данных, если они еще не существуют. Однако сведения о первичном ключе не включаются в неявно созданную схему MissingSchemaAction , если свойство не имеет значение AddWithKey. Вы также SqlDataAdapter можете создать схему DataSet, включая сведения о первичном ключе, прежде чем заполнять ее данными с помощью FillSchema. Дополнительные сведения см. в разделе Добавление существующих ограничений в набор данных.

SqlDataAdapterиспользуется в сочетании с SqlConnection и SqlCommand для повышения производительности при подключении к базе данных SQL Server.

Примечание

При использовании хранимых процедур SQL Server для изменения или удаления данных с помощью DataAdapter убедитесь, что в определении хранимой процедуры не указана инструкция SET NOCOUNT ON. В таком случае возвращается число затронутых строк, равное нулю, что DataAdapter интерпретирует как конфликт параллелизма. Это событие вызовет исключение DBConcurrencyException.

Также SqlDataAdapter включает SelectCommandсвойства , InsertCommand, DeleteCommand, UpdateCommandи TableMappings для упрощения загрузки и обновления данных.

При создании экземпляра SqlDataAdapter свойству чтения и записи присваиваются начальные значения. Список этих значений см. в конструкторе SqlDataAdapter.

, InsertCommandDeleteCommandи UpdateCommand — это универсальные шаблоны, которые автоматически заполняются отдельными значениями из каждой измененной строки с помощью механизма параметров.

Для каждого столбца, распространяемого в источник данных в Update, следует добавить параметр в InsertCommand, UpdateCommandили DeleteCommand. Свойству SourceColumnDbParameter объекта должно быть присвоено имя столбца. Этот параметр указывает, что значение параметра не задается вручную, а берется из конкретного столбца в текущей обработанной строке.

Примечание

Будет InvalidOperationException возникать, если Fill вызывается метод и таблица содержит пользовательский тип, недоступный на клиентском компьютере. Дополнительные сведения об определяемых пользователем типах данных CLR см. в разделе Определяемые пользователем типы данных CLR.

Конструкторы

SqlDataAdapter()

Инициализирует новый экземпляр класса SqlDataAdapter.

SqlDataAdapter(SqlCommand)

Инициализирует новый экземпляр класса SqlDataAdapter с помощью указанной команды SqlCommand в качестве свойства SelectCommand.

SqlDataAdapter(String, SqlConnection)

Инициализирует новый экземпляр класса SqlDataAdapter с помощью SelectCommand и объекта SqlConnection.

SqlDataAdapter(String, String)

Инициализирует новый экземпляр класса SqlDataAdapter с помощью SelectCommand и строки подключения.

Свойства

DeleteCommand

Возвращает или задает инструкцию Transact-SQL или хранимую процедуру, используемую для удаления записей из набора данных.

InsertCommand

Возвращает или задает инструкцию Transact-SQL или хранимую процедуру, используемую для вставки новых записей в источник данных.

SelectCommand

Возвращает или задает инструкцию Transact-SQL или хранимую процедуру, используемую для выбора записей из источника данных.

UpdateBatchSize

Возвращает или задает число строк, обработанных при каждом обращении к серверу.

UpdateCommand

Возвращает или задает инструкцию Transact-SQL или хранимую процедуру, используемую для обновления записей в источнике данных.

События

RowUpdated

Происходит во время Update(DataSet) после выполнения команды для источника данных. Сделана попытка обновления, поэтому создается событие.

RowUpdating

Происходит во время Update(DataSet) перед выполнением команды в отношении источника данных. Сделана попытка обновления, поэтому создается событие.

Явные реализации интерфейса

ICloneable.Clone()

Описание этого члена см. в разделе Clone().

IDbDataAdapter.DeleteCommand

Описание этого члена см. в разделе DeleteCommand.

IDbDataAdapter.InsertCommand

Описание этого члена см. в разделе InsertCommand.

IDbDataAdapter.SelectCommand

Описание этого члена см. в разделе SelectCommand.

IDbDataAdapter.UpdateCommand

Описание этого члена см. в разделе UpdateCommand.

Применяется к