Compartilhar via


SqlDataAdapter Classe

Definição

Representa um conjunto de comandos de dados e uma conexão de banco de dados que são usados para preencher o DataSet e atualizar o banco de dados do SQL Server. Essa classe não pode ser herdada.

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
Herança
SqlDataAdapter
Implementações

Exemplos

O exemplo a seguir usa o SqlCommand, SqlDataAdaptere SqlConnection para selecionar registros de um banco de dados e preencher um DataSet com as linhas selecionadas. O preenchido DataSet é retornado. Para fazer isso, o método é passado um inicializado DataSet, uma cadeia de conexão e uma cadeia de caracteres de consulta que é uma instrução SELECT Transact-SQL.

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

Comentários

O SqlDataAdapter, serve como uma ponte entre um DataSet e SQL Server para recuperar e salvar dados. O SqlDataAdapter fornece essa ponte mapeando Fill, que altera os dados no DataSet para corresponder aos dados na fonte de dados e Update, que altera os dados na fonte de dados para corresponder aos dados no DataSet, usando as instruções Transact-SQL apropriadas em relação à fonte de dados. A atualização é executada por linha. Para cada linha inserida, modificada e excluída, o Update método determina o tipo de alteração que foi executada nela (Insert, Updateou Delete). Dependendo do tipo de alteração, o Insertmodelo de comando , Updateou Delete é executado para propagar a linha modificada para a fonte de dados. Quando o SqlDataAdapter preenche um DataSet, ele cria as tabelas e colunas necessárias para os dados retornados se eles ainda não existirem. No entanto, as informações de chave primária não são incluídas no esquema criado implicitamente, a menos que a MissingSchemaAction propriedade esteja definida como AddWithKey. Você também pode ter a criação SqlDataAdapter do esquema do , incluindo informações de DataSetchave primária, antes de preenchê-lo com dados usando FillSchema. Para obter mais informações, consulte Adicionando restrições existentes a um Conjunto de Dados.

SqlDataAdapteré usado em conjunto com SqlConnection e SqlCommand para aumentar o desempenho ao se conectar a um banco de dados SQL Server.

Observação

Se você estiver usando procedimentos armazenados do SQL Server para editar ou excluir dados usando um DataAdapter, não use SET NOCOUNT ON na definição do procedimento armazenado. Isso faz com que a contagem retornada de linhas afetadas seja zero, o que o DataAdapter interpreta como um conflito de simultaneidade. Nesse caso, será gerada uma DBConcurrencyException.

O SqlDataAdapter também inclui as SelectCommandpropriedades , InsertCommand, DeleteCommand, UpdateCommande TableMappings para facilitar o carregamento e a atualização de dados.

Quando uma instância de é criada, as propriedades de SqlDataAdapter leitura/gravação são definidas como valores iniciais. Para obter uma lista desses valores, consulte o SqlDataAdapter construtor .

Os InsertCommand, DeleteCommande UpdateCommand são modelos genéricos que são preenchidos automaticamente com valores individuais de cada linha modificada por meio do mecanismo de parâmetros.

Para cada coluna propagada para a fonte de dados em Update, um parâmetro deve ser adicionado ao InsertCommand, UpdateCommandou DeleteCommand. A SourceColumn propriedade do DbParameter objeto deve ser definida como o nome da coluna. Essa configuração indica que o valor do parâmetro não é definido manualmente, mas é obtido da coluna específica na linha processada no momento.

Observação

Ocorrerá InvalidOperationException um se o Fill método for chamado e a tabela contiver um tipo definido pelo usuário que não esteja disponível no computador cliente. Para obter mais informações, veja Tipos CLR definidos pelo usuário.

Construtores

SqlDataAdapter()

Inicializa uma nova instância da classe SqlDataAdapter.

SqlDataAdapter(SqlCommand)

Inicializa uma nova instância da classe SqlDataAdapter com o SqlCommand especificado como a propriedade SelectCommand.

SqlDataAdapter(String, SqlConnection)

Inicializa uma nova instância da classe SqlDataAdapter com um SelectCommand e um objeto SqlConnection.

SqlDataAdapter(String, String)

Inicializa uma nova instância da classe SqlDataAdapter com um SelectCommand e uma cadeia de conexão.

Propriedades

DeleteCommand

Obtém ou define uma instrução Transact-SQL ou um procedimento armazenado para excluir registros na fonte de dados.

InsertCommand

Obtém ou define uma instrução Transact-SQL ou um procedimento armazenado para inserir novos registros na fonte de dados.

SelectCommand

Obtém ou define uma instrução Transact-SQL ou um procedimento armazenado usado para selecionar registros na fonte de dados.

UpdateBatchSize

Obtém ou define o número de linhas que são processadas em cada viagem de ida e volta ao servidor.

UpdateCommand

Obtém ou define uma instrução Transact-SQL ou um procedimento armazenado usado para atualizar registros na fonte de dados.

Eventos

RowUpdated

Ocorre durante o Update(DataSet), após um comando ser executado na fonte de dados. Realiza-se a tentativa de atualização, para que o evento seja acionado.

RowUpdating

Ocorre durante o Update(DataSet), após um comando ser executado com relação à fonte de dados. Realiza-se a tentativa de atualização, para que o evento seja acionado.

Implantações explícitas de interface

ICloneable.Clone()

Para obter uma descrição desse membro, confira Clone().

IDbDataAdapter.DeleteCommand

Para obter uma descrição desse membro, confira DeleteCommand.

IDbDataAdapter.InsertCommand

Para obter uma descrição desse membro, confira InsertCommand.

IDbDataAdapter.SelectCommand

Para obter uma descrição desse membro, confira SelectCommand.

IDbDataAdapter.UpdateCommand

Para obter uma descrição desse membro, confira UpdateCommand.

Aplica-se a