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. |