Como: Atualizar registros em um banco de dados

Você pode usar o método TableAdapter.Update para atualizar (editar) registros em um banco de dados.The TableAdapter.Update método fornece várias sobrecargas que realizam operações diferentes dependendo dos parâmetros passados. É importante compreender os resultados da chamada essas assinaturas de método diferente.

Observação:

Se seu aplicativo não usa TableAdapters, você pode usar objetos command para atualização registra em seu banco de dados (por exemplo, ExecuteNonQuery).Para obter mais informações sobre a atualização de dados com objetos de comando, consulte "Atualizar registros usando objetos de comando" abaixo.

A tabela a seguir descreve o comportamento dos diversos métodos TableAdapter.Update:

Método

Descrição

TableAdapter.Update(DataTable)

Tenta salvar todas as alterações em DataTable ao banco de dados.(Isso inclui remover quaisquer linhas excluídas da tabela, adicionar linhas inseridas na tabela e atualizar quaisquer linhas na tabela que foram alteradas.)

TableAdapter.Update(DataSet)

Embora o parâmetro leve um dataset, o TableAdapter tenta salvar todas as alterações na DataTable associada do TableAdapter para o banco de dados.(Isso inclui remover quaisquer linhas excluídas da tabela, adicionar linhas inseridas na tabela e atualizar quaisquer linhas na tabela que foram alteradas.)

Observação:
Um TableAdapter da associado DataTable é o DataTable criada quando o TableAdapter foi originalmente configurado.

TableAdapter.Update(DataRow)

Tenta salvar alterações na DataRow indicada para o banco de dados.

TableAdapter.Update(DataRows())

Tenta salvar as alterações em qualquer linha na matriz de DataRows para o banco de dados.

TableAdapter.Update("new column values", "original column values")

Tenta salvar as alterações em uma única linha que é identificada pelos valores da coluna original.

Você normalmente usa o método TableAdapter.Update que recebe um DataSet, DataTable, ou DataRow(s) quando seu aplicativo usa conjuntos de dados exclusivamente para armazenar dados.

Normalmente você utiliza o método TableAdapter.Update que recebe valores de coluna quando seu aplicativo usa objetos para armazenar dados.

Se seu TableAdapter não tem um método Update que recebe valores de coluna, significa que ou o TableAdapter está configurado para usar procedimentos armazenados ou sua propriedade GenerateDBDirectMethods está definida como false.Try setting the TableAdapter's GenerateDBDirectMethods property to true from within the Dataset Designer and then save the dataset to regenerate the TableAdapter.Se o TableAdapter ainda não tem um método Update que recebe valores de coluna, então a tabela provavelmente não fornece informações de esquema suficientes para distinguir entre linhas individuais (por exemplo, nenhuma chave primária está definida na tabela).

Atualizar registros existentes usando TableAdapters

TableAdapters fornecem maneiras diferentes para atualizar registros em um banco dados dependendo dos requisitos do seu aplicativo.

Se o seu aplicativo utiliza datasets para armazenar dados, em seguida, você simplesmente pode atualizar os registros no desejado DataTable e, em seguida, telefonar o TableAdapter.Update método e passagem em ambos os DataSet, DataTable, DataRow, ou matriz de DataRows. A tabela acima descreve os diferentes Update métodos.

Para atualizar registros em um banco de dados com o método TableAdapter.Update que recebe DataSet, DataTable, DataRow ou DataRows()

  1. Editar registros na DataTable desejada editando diretamente o DataRow na DataTable.Para obter mais informações, consulte Como: edição linhas em uma DataTable.

  2. Após as linhas serem editadas na DataTable, chame o método TableAdapter.Update.You can control the amount of data to update by passing in either an entire DataSet, a DataTable, an array of DataRows, or a single DataRow.

    O código a seguir mostra como editar um registro em um DataTable e, em seguida, chamar o método TableAdapter.Update para salvar as alterações para o banco de dados.(Este exemplo usa a tabela Region do banco de dados Northwind.)

    ' Locate the row you want to update.
    Dim regionRow As NorthwindDataSet.RegionRow
    regionRow = NorthwindDataSet._Region.FindByRegionID(1)
    
    ' Assign the new value to the desired column.
    regionRow.RegionDescription = "East"
    
    ' Save the updated row to the database
    Me.RegionTableAdapter.Update(Me.NorthwindDataSet._Region)
    
    // Locate the row you want to update.
    NorthwindDataSet.RegionRow regionRow;
    regionRow = northwindDataSet.Region.FindByRegionID(1);
    
    // Assign the new value to the desired column.
    regionRow.RegionDescription = "East";
    
    // Save the updated row to the database.
    this.regionTableAdapter.Update(this.northwindDataSet.Region);
    

Se seu aplicativo usa objetos para armazenar os dados em seu aplicativo, você pode utilizar os métodosDBDirect do TableAdapter para enviar dados de seus objetos diretamente para o banco de dados.Esses métodos permitem que você passe valores individuais para cada coluna como parâmetros de método.Chamar esse método atualiza um registro existente no banco de dados com os valores de coluna passados para o método.

O procedimento a seguir usa a tabela Region do banco de dados Northwind como um exemplo.

Para atualizar registros em um banco de dados usando o método TableAdapter.Update que recebe valores de coluna

  • Chame o método Update do TableAdapter, passando os valores novos e originais para cada coluna como parâmetros.

    Observação:

    Se você não tiver uma instância disponível, crie a instância no TableAdapter que você deseja usar.

    Dim regionTableAdapter As New NorthwindDataSetTableAdapters.RegionTableAdapter
    
    regionTableAdapter.Update(1, "East", 1, "Eastern")
    
    NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
        new NorthwindDataSetTableAdapters.RegionTableAdapter();
    
    regionTableAdapter.Update(1, "East", 1, "Eastern");
    

Atualizar Registros Usando Objetos de Comando

O exemplo a seguir atualiza registros existentes diretamente em um banco de dados usando objetos de comando.For more information on using command objects to execute commands and stored procedures, see Buscando dados em seu aplicativo.

O procedimento a seguir usa a tabela Region do banco de dados Northwind como um exemplo.

Para atualizar registros existentes em um banco de dados usando objetos de comando

  • Crie um novo objeto de comando; defina suas propriedades Connection, CommandType e CommandText; em seguida, abra uma conexão e execute o comando.

    Dim sqlConnection1 As New System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING")
    
    Dim cmd As New System.Data.SqlClient.SqlCommand
    cmd.CommandType = System.Data.CommandType.Text
    cmd.CommandText = "UPDATE Region SET RegionID = 1, RegionDescription = 'East' WHERE RegionID = 1"
    cmd.Connection = sqlConnection1
    
    sqlConnection1.Open()
    cmd.ExecuteNonQuery()
    sqlConnection1.Close()
    
    System.Data.SqlClient.SqlConnection sqlConnection1 = 
        new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING");
    
    System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
    cmd.CommandType = System.Data.CommandType.Text;
    cmd.CommandText = "UPDATE Region SET RegionID = 1, RegionDescription = 'East' WHERE RegionID = 1";
    cmd.Connection = sqlConnection1;
    
    sqlConnection1.Open();
    cmd.ExecuteNonQuery();
    sqlConnection1.Close();
    

Segurança

Você deve ter acesso ao banco de dados ao qual você está tentando se conectar, bem como permissão para atualizar registros na tabela desejada.

Consulte também

Tarefas

Como: Excluir registros em um banco de dados

Como: Inserir novos registros em um banco de dados

Como: Salvar dados de um objeto a um banco de dados

Conceitos

Visão geral do TableAdapter

Outros recursos

Guia de Introdução para acesso a dados

Conectando-se a Dados no Visual Studio

Preparando seu aplicativo para receber dados

Buscando dados em seu aplicativo

Exibindo dados em formulários em aplicativos do Windows

Editar dados no seu aplicativo

Validando Dados

Salvando dados