SqlCommandBuilder Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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. |