Compartilhar via


SqlCommandBuilder Classe

Definição

Gera automaticamente os comandos de tabela única que são usados para reconciliar as alterações feitas em um DataSet com o banco de dados do SQL Server associado. Essa classe não pode ser herdada.

public ref class SqlCommandBuilder sealed : System::Data::Common::DbCommandBuilder
public sealed class SqlCommandBuilder : System.Data.Common.DbCommandBuilder
type SqlCommandBuilder = class
    inherit DbCommandBuilder
Public NotInheritable Class SqlCommandBuilder
Inherits DbCommandBuilder
Herança
SqlCommandBuilder

Exemplos

O exemplo a seguir usa , SqlCommandjunto SqlDataAdapter e SqlConnection, para selecionar linhas de uma fonte de dados. O exemplo é passado uma cadeia de conexão, uma cadeia de caracteres de consulta que é uma instrução TRANSact-SQL SELECT e uma cadeia de caracteres que é o nome da tabela de banco de dados. Em seguida, o exemplo cria um SqlCommandBuilder.

using System;
using System.Data;
using Microsoft.Data.SqlClient;

namespace SqlCommandBuilderCS
{
    class Program
    {
        static void Main()
        {
            string cnnst = "";
            string queryst = "";
            string tablen = "";
            DataSet ds = SelectSqlRows(cnnst, queryst, tablen);

        }

        public static DataSet SelectSqlRows(string connectionString,
            string queryString, string tableName)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlDataAdapter adapter = new SqlDataAdapter();
                adapter.SelectCommand = new SqlCommand(queryString, connection);
                SqlCommandBuilder builder = new SqlCommandBuilder(adapter);

                connection.Open();

                DataSet dataSet = new DataSet();
                adapter.Fill(dataSet, tableName);

                //code to modify data in DataSet here

                builder.GetUpdateCommand();

                //Without the SqlCommandBuilder this line would fail
                adapter.Update(dataSet, tableName);

                return dataSet;
            }
        }

Comentários

O SqlDataAdapter não gera automaticamente as instruções Transact-SQL necessárias para reconciliar as alterações feitas em um DataSet com a instância associada do SQL Server. No entanto, você poderá criar um SqlCommandBuilder objeto para gerar automaticamente instruções Transact-SQL para atualizações de tabela única se definir a SelectCommand propriedade do SqlDataAdapter. Em seguida, todas as instruções Transact-SQL adicionais que você não definir são geradas pelo SqlCommandBuilder.

O SqlCommandBuilder se registra como um ouvinte para RowUpdating eventos sempre que você define a DataAdapter propriedade. Você só pode associar um SqlDataAdapter objeto ou SqlCommandBuilder ao outro ao mesmo tempo.

Para gerar instruções INSERT, UPDATE ou DELETE, o SqlCommandBuilder usa a SelectCommand propriedade para recuperar automaticamente um conjunto necessário de metadados. Se você alterar o SelectCommand após a recuperação dos metadados, como após a primeira atualização, chame o RefreshSchema método para atualizar os metadados.

O SelectCommand também deve retornar pelo menos uma chave primária ou coluna exclusivo. Se nenhum estiver presente, uma exceção InvalidOperation será gerada e os comandos não serão gerados.

O SqlCommandBuilder também usa as Connectionpropriedades , CommandTimeoute Transaction referenciadas pelo SelectCommand. O usuário deve chamar RefreshSchema se uma ou mais dessas propriedades forem modificadas ou se o SelectCommand próprio for substituído. Caso contrário, as InsertCommandpropriedades , UpdateCommande DeleteCommand mantêm seus valores anteriores.

Se você chamar Dispose, o SqlCommandBuilder será desassociado do SqlDataAdaptere os comandos gerados não serão mais usados.

Construtores

SqlCommandBuilder()

Inicializa uma nova instância da classe SqlCommandBuilder.

SqlCommandBuilder(SqlDataAdapter)

Inicializa uma nova instância da classe SqlCommandBuilder com o objeto SqlDataAdapter associado.

Propriedades

CatalogLocation

Define ou obtém o CatalogLocation para uma instância da classe SqlCommandBuilder.

CatalogSeparator

Define ou obtém uma cadeia de caracteres usada como o separador de catálogo para uma instância da classe SqlCommandBuilder.

DataAdapter

Obtém ou define um objeto SqlDataAdapter para o qual as instruções do Transact-SQL são geradas automaticamente.

QuotePrefix

Obtém ou define o caractere ou caracteres iniciais a serem usados ao especificar os objetos de banco de dados do SQL Server, tais como tabelas ou colunas, cujos nomes contêm caracteres como espaços ou tokens reservados.

QuoteSuffix

Obtém ou define o caractere ou caracteres finais a serem usados ao especificar os objetos de banco de dados do SQL Server, tais como tabelas ou colunas, cujos nomes contêm caracteres como espaços ou tokens reservados.

SchemaSeparator

Obtém ou define o caractere a ser usado para o separador entre o identificador do esquema e de quaisquer outros identificadores.

Métodos

DeriveParameters(SqlCommand)

Recupera informações de parâmetro do procedimento armazenado especificado no SqlCommand e popula a coleção Parameters do objeto SqlCommand especificado.

GetDeleteCommand()

Obtém o objeto SqlCommand gerado automaticamente necessário para executar exclusões no banco de dados.

GetDeleteCommand(Boolean)

Obtém o objeto SqlCommand gerado automaticamente necessário para executar exclusões no banco de dados.

GetInsertCommand()

Obtém o objeto SqlCommand gerado automaticamente necessário para executar inserções no banco de dados.

GetInsertCommand(Boolean)

Obtém o objeto SqlCommand gerado automaticamente necessário para executar inserções no banco de dados.

GetUpdateCommand()

Obtém o objeto SqlCommand gerado automaticamente necessário para realizar atualizações no banco de dados.

GetUpdateCommand(Boolean)

Obtém o objeto SqlCommand gerado automaticamente necessário para realizar atualizações no banco de dados.

QuoteIdentifier(String)

Gera automaticamente os comandos de tabela única que são usados para reconciliar as alterações feitas em um DataSet com o banco de dados do SQL Server associado. Essa classe não pode ser herdada.

UnquoteIdentifier(String)

Fornecido um identificador entre aspas, retorna a forma sem aspas correta do identificador. Isso inclui o uso correto sem escape de quaisquer aspas inseridas no identificador.

Aplica-se a