SqlDataAdapter.DeleteCommand Propriedade
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.
Obtém ou define uma instrução Transact-SQL ou um procedimento armazenado para excluir registros na fonte de dados.
public:
property Microsoft::Data::SqlClient::SqlCommand ^ DeleteCommand { Microsoft::Data::SqlClient::SqlCommand ^ get(); void set(Microsoft::Data::SqlClient::SqlCommand ^ value); };
public Microsoft.Data.SqlClient.SqlCommand DeleteCommand { get; set; }
member this.DeleteCommand : Microsoft.Data.SqlClient.SqlCommand with get, set
Public Property DeleteCommand As SqlCommand
Valor da propriedade
Um SqlCommand usado durante o Update(DataSet) para excluir registros no banco de dados que correspondem às linhas excluídas no DataSet.
Exemplos
O exemplo a seguir cria um SqlDataAdapter e define as SelectCommandpropriedades , InsertCommand, UpdateCommande DeleteCommand . Ele pressupõe que você já tenha criado um SqlConnection objeto .
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
}
public static SqlDataAdapter CreateCustomerAdapter(
SqlConnection connection)
{
SqlDataAdapter adapter = new SqlDataAdapter();
// Create the SelectCommand.
SqlCommand command = new SqlCommand("SELECT * FROM Customers " +
"WHERE Country = @Country AND City = @City", connection);
// Add the parameters for the SelectCommand.
command.Parameters.Add("@Country", SqlDbType.NVarChar, 15);
command.Parameters.Add("@City", SqlDbType.NVarChar, 15);
adapter.SelectCommand = command;
// Create the InsertCommand.
command = new SqlCommand(
"INSERT INTO Customers (CustomerID, CompanyName) " +
"VALUES (@CustomerID, @CompanyName)", connection);
// Add the parameters for the InsertCommand.
command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");
adapter.InsertCommand = command;
// Create the UpdateCommand.
command = new SqlCommand(
"UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName " +
"WHERE CustomerID = @oldCustomerID", connection);
// Add the parameters for the UpdateCommand.
command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");
SqlParameter parameter = command.Parameters.Add(
"@oldCustomerID", SqlDbType.NChar, 5, "CustomerID");
parameter.SourceVersion = DataRowVersion.Original;
adapter.UpdateCommand = command;
// Create the DeleteCommand.
command = new SqlCommand(
"DELETE FROM Customers WHERE CustomerID = @CustomerID", connection);
// Add the parameters for the DeleteCommand.
parameter = command.Parameters.Add(
"@CustomerID", SqlDbType.NChar, 5, "CustomerID");
parameter.SourceVersion = DataRowVersion.Original;
adapter.DeleteCommand = command;
return adapter;
}
}
Comentários
Durante Update, se essa propriedade não estiver definida e as informações de chave primária estiverem presentes no DataSet, o DeleteCommand poderá ser gerado automaticamente se você definir a SelectCommand propriedade e usar o SqlCommandBuilder. Em seguida, todos os comandos adicionais que você não definir são gerados pelo SqlCommandBuilder. Esta lógica de geração requer que as informações da coluna principal estejam presente no DataSet. Para obter mais informações, confira Gerar comandos com CommandBuilders.
Quando DeleteCommand é atribuído a um criado SqlCommandanteriormente, o SqlCommand não é clonado. O DeleteCommand mantém uma referência ao objeto criado SqlCommand anteriormente.
Para cada coluna propagada para a fonte de dados em Update, um parâmetro deve ser adicionado ao InsertCommand
, UpdateCommand
ou DeleteCommand
. A SourceColumn
propriedade do parâmetro deve ser definida como o nome da coluna. Isso indica que o valor do parâmetro não é definido manualmente, mas é obtido da coluna específica na linha processada no momento.