DbDataAdapter.Update Método

Definição

Atualiza os valores no banco de dados executando as respectivas instruções INSERT, UPDATE ou DELETE para cada linha inserida, atualizada ou excluída no DataSet.Updates the values in the database by executing the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the DataSet.

Sobrecargas

Update(DataSet, String)

Atualiza os valores no banco de dados executando as respectivas instruções INSERT, UPDATE ou DELETE para cada linha inserida, atualizada ou excluída no DataSet com o nome DataTable especificado.Updates the values in the database by executing the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the DataSet with the specified DataTable name.

Update(DataRow[], DataTableMapping)

Atualiza os valores no banco de dados executando as respectivas instruções INSERT, UPDATE ou DELETE para cada linha inserida, atualizada ou excluída na matriz de objetos DataSet especificada.Updates the values in the database by executing the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the specified array of DataSet objects.

Update(DataTable)

Atualiza os valores no banco de dados executando as respectivas instruções INSERT, UPDATE ou DELETE para cada linha inserida, atualizada ou excluída no DataTable especificado.Updates the values in the database by executing the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the specified DataTable.

Update(DataSet)

Atualiza os valores no banco de dados executando as respectivas instruções INSERT, UPDATE ou DELETE para cada linha inserida, atualizada ou excluída no DataSet especificado.Updates the values in the database by executing the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the specified DataSet.

Update(DataRow[])

Atualiza os valores no banco de dados executando as respectivas instruções INSERT, UPDATE ou DELETE para cada linha inserida, atualizada ou excluída na matriz especificada no DataSet.Updates the values in the database by executing the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the specified array in the DataSet.

Update(DataSet, String)

Atualiza os valores no banco de dados executando as respectivas instruções INSERT, UPDATE ou DELETE para cada linha inserida, atualizada ou excluída no DataSet com o nome DataTable especificado.Updates the values in the database by executing the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the DataSet with the specified DataTable name.

public:
 int Update(System::Data::DataSet ^ dataSet, System::String ^ srcTable);
public int Update (System.Data.DataSet dataSet, string srcTable);
override this.Update : System.Data.DataSet * string -> int
Public Function Update (dataSet As DataSet, srcTable As String) As Integer

Parâmetros

dataSet
DataSet

O DataSet a ser usado para atualizar a fonte de dados.The DataSet to use to update the data source.

srcTable
String

O nome da tabela de origem a ser usado para mapeamento de tabela.The name of the source table to use for table mapping.

Retornos

Int32

O número de linhas atualizadas com êxito a partir do DataSet.The number of rows successfully updated from the DataSet.

Exceções

O DataSet é inválido.The DataSet is invalid.

A tabela de origem é inválida.The source table is invalid.

Uma tentativa de executar uma instrução INSERT, UPDATE ou DELETE resultou em zero registro afetado.An attempt to execute an INSERT, UPDATE, or DELETE statement resulted in zero records affected.

Exemplos

O exemplo a seguir usa a classe derivada, OleDbDataAdapter , para atualizar a fonte de dados.The following example uses the derived class, OleDbDataAdapter, to update the data source.

public DataSet CreateCmdsAndUpdate(string connectionString,
    string queryString, string tableName)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        adapter.SelectCommand = new OleDbCommand(queryString, connection);
        OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

        connection.Open();

        DataSet customers = new DataSet();
        adapter.Fill(customers);

        //code to modify data in dataset here

        adapter.Update(customers, tableName);

        return customers;
    }
}
Public Function CreateCmdsAndUpdate(ByVal connectionString As String, _
    ByVal queryString As String, _
    ByVal tableName As String) As DataSet

    Using connection As New OleDbConnection(connectionString)
        Dim adapter As New OleDbDataAdapter()
        adapter.SelectCommand = New OleDbCommand(queryString, connection)
        Dim builder As New OleDbCommandBuilder(adapter)

        connection.Open()

        Dim customers As New DataSet()
        adapter.Fill(customers)

        ' Code to modify data in DataSet here 

        adapter.Update(customers, tableName)

        Return customers
    End Using
End Function

Comentários

Quando um aplicativo chama o Update método, o DbDataAdapter examina a RowState propriedade e executa as instruções INSERT, Update ou DELETE necessárias iterativamente para cada linha, com base na ordem dos índices configurados no DataSet .When an application calls the Update method, the DbDataAdapter examines the RowState property, and executes the required INSERT, UPDATE, or DELETE statements iteratively for each row, based on the order of the indexes configured in the DataSet. Por exemplo, Update pode executar uma instrução DELETE, seguida por uma instrução INSERT, e outra instrução DELETE, devido à ordenação das linhas no DataTable .For example, Update might execute a DELETE statement, followed by an INSERT statement, and then another DELETE statement, due to the ordering of the rows in the DataTable.

Deve-se observar que essas instruções não são executadas como um processo em lote; cada linha é atualizada individualmente.It should be noted that these statements are not performed as a batch process; each row is updated individually. Um aplicativo pode chamar o GetChanges método em situações em que você deve controlar a sequência de tipos de instrução (por exemplo, inserir antes da atualização).An application can call the GetChanges method in situations where you must control the sequence of statement types (for example, INSERT before UPDATE). Para obter mais informações, consulte Atualizando fontes de dados com DataAdapters.For more information, see Updating Data Sources with DataAdapters.

Se as instruções INSERT, UPDATE ou DELETE não tiverem sido especificadas, o Update método gerará uma exceção.If INSERT, UPDATE, or DELETE statements have not been specified, the Update method generates an exception. No entanto, é possível criar um objeto SqlCommandBuilder ou OleDbCommandBuilder para gerar automaticamente instruções SQL para atualizações de tabela única caso você defina a propriedade SelectCommand de um provedor de dados do .NET Framework.However, you can create a SqlCommandBuilder or OleDbCommandBuilder object to automatically generate SQL statements for single-table updates if you set the SelectCommand property of a .NET Framework data provider. Em seguida, quaisquer instruções SQL adicionais que você não definir serão geradas pelo CommandBuilder.Then, any additional SQL statements that you do not set are generated by the CommandBuilder. Esta lógica de geração requer que as informações da coluna principal estejam presente no DataSet.This generation logic requires key column information to be present in the DataSet. Para obter mais informações, consulte gerando comandos com CommandBuilders.For more information see Generating Commands with CommandBuilders.

O Update método dá suporte a cenários em que o DataSet contém vários DataTable objetos cujos nomes diferem apenas por maiúsculas e minúsculas.The Update method supports scenarios where the DataSet contains multiple DataTable objects whose names differ only by case. Quando várias tabelas com o mesmo nome, mas com caso diferente, existirem em um DataSet , Update o executará uma comparação que diferencia maiúsculas de minúsculas para localizar a tabela correspondente e gerará uma exceção se não existir nenhuma correspondência exata.When multiple tables with the same name, but different case, exist in a DataSet, Update performs a case-sensitive comparison to find the corresponding table, and generates an exception if no exact match exists. O código C# a seguir ilustra esse comportamento.The following C# code illustrates this behavior.

DataSet ds = new DataSet();  
 ds.Tables.Add("aaa");  
 ds.Tables.Add("AAA");  
 adapter.Update(ds, "aaa"); // Updates "aaa", which already exists in the DataSet.  
 adapter.Update(ds, "AAA"); // Updates "AAA", which already exists in the DataSet.  
    adapter.Update(ds, "Aaa"); // Results in an exception.  

Se Update é chamado e DataSet contém apenas um DataTable cujo nome difere somente por maiúsculas e minúsculas, que DataTable é atualizado.If Update is called and the DataSet contains only one DataTable whose name differs only by case, that DataTable is updated. Nesse cenário, a comparação não diferencia maiúsculas de minúsculas.In this scenario, the comparison is case insensitive. O código C# a seguir ilustra esse comportamento.The following C# code illustrates this behavior.

DataSet dataset = new DataSet();  
 dataset.Tables.Add("aaa");  
    adapter.Update(dataset, "AAA"); // Updates table "aaa" because only one similarly named table is in the DataSet.  

O Update método recupera linhas da tabela listadas no primeiro mapeamento antes de executar uma atualização.The Update method retrieves rows from the table listed in the first mapping before performing an update. UpdateEm seguida, o atualiza a linha usando o valor da UpdatedRowSource propriedade.The Update then refreshes the row using the value of the UpdatedRowSource property. Todas as linhas adicionais retornadas são ignoradas.Any additional rows returned are ignored.

Depois que todos os dados são recarregados no DataSet, o evento OnRowUpdated é acionado, permitindo que o usuário inspecione a linha DataSet reconciliada e todos os parâmetros de saída retornados pelo comando.After any data is loaded back into the DataSet, the OnRowUpdated event is raised, allowing the user to inspect the reconciled DataSet row and any output parameters returned by the command. Depois que uma linha é atualizada com êxito, as alterações feitas nessa linha são aceitas.After a row updates successfully, the changes to that row are accepted.

Ao usar Update o, a ordem de execução é a seguinte:When using Update, the order of execution is as follows:

  1. Os valores no DataRow são movidos para os valores de parâmetro.The values in the DataRow are moved to the parameter values.

  2. O OnRowUpdating evento é gerado.The OnRowUpdating event is raised.

  3. O comando é executado.The command executes.

  4. Se o comando for definido como FirstReturnedRecord , o primeiro resultado retornado será colocado no DataRow .If the command is set to FirstReturnedRecord, then the first returned result is placed in the DataRow.

  5. Se houver parâmetros de saída, eles serão colocados no DataRow .If there are output parameters, they are placed in the DataRow.

  6. O OnRowUpdated evento é gerado.The OnRowUpdated event is raised.

  7. AcceptChanges é chamado.AcceptChanges is called.

Cada comando associado ao DbDataAdapter normalmente tem uma coleção de parâmetros associada a ele.Each command associated with the DbDataAdapter usually has a parameters collection associated with it. Os parâmetros são mapeados para a linha atual por meio das propriedades SourceColumn e SourceVersion da classe Parameter de um provedor de dados do .NET Framework.Parameters are mapped to the current row through the SourceColumn and SourceVersion properties of a .NET Framework data provider's Parameter class. SourceColumn refere-se a uma DataTable coluna que as DbDataAdapter referências obtêm valores de parâmetro para a linha atual.SourceColumn refers to a DataTable column that the DbDataAdapter references to obtain parameter values for the current row.

SourceColumn refere-se ao nome da coluna não mapeado antes da aplicação de qualquer mapeamento de tabela.SourceColumn refers to the unmapped column name before any table mappings have been applied. Caso SourceColumn refira-se a uma coluna inexistente, a ação tomada depende de um dos valores MissingMappingAction a seguir.If SourceColumn refers to a nonexistent column, the action taken depends on one of the following MissingMappingAction values.

Valor de enumeraçãoEnumeration value Ação executadaAction taken
MissingMappingAction.Passthrough Use os nomes de coluna de fonte e os nomes de tabela no DataSet caso nenhum mapeamento esteja presente.Use the source column names and table names in the DataSet if no mapping is present.
MissingMappingAction.Ignore Um SystemException é gerado.A SystemException is generated. Quando os mapeamentos são definidos explicitamente, um mapeamento ausente para um parâmetro de entrada geralmente é o resultado de um erro.When the mappings are explicitly set, a missing mapping for an input parameter is usually the result of an error.
MissingMappingAction.Error Um SystemException é gerado.A SystemException is generated.

A propriedade SourceColumn também é usada para remapear o valor para parâmetros de saída ou de entrada/saída para o DataSet.The SourceColumn property is also used to map the value for output or input/output parameters back to the DataSet. Uma exceção será gerada se fizer referência a uma coluna inexistente.An exception is generated if it refers to a nonexistent column.

A SourceVersion propriedade de uma classe do provedor de dados .NET Framework Parameter determina se a versão original, atual ou proposta do valor da coluna deve ser usada.The SourceVersion property of a .NET Framework data provider's Parameter class determines whether to use the Original, Current, or Proposed version of the column value. Esse recurso é frequentemente usado para incluir valores originais na cláusula WHERE de uma instrução UPDATE para verificar violações de simultaneidade otimistas.This capability is often used to include original values in the WHERE clause of an UPDATE statement to check for optimistic concurrency violations.

Observação

Caso ocorra um erro durante a atualização de uma linha, uma exceção é lançada e a execução da atualização é descontinuada.If an error occurs while updating a row, an exception is thrown and execution of the update is discontinued. Para continuar a operação de atualização sem gerar exceções quando um erro é encontrado, defina a propriedade ContinueUpdateOnError como true antes de chamar Update.To continue the update operation without generating exceptions when an error is encountered, set the ContinueUpdateOnError property to true before calling Update. Você também pode responder a erros linha por linha dentro do evento RowUpdated de um DataAdapter.You may also respond to errors on a per-row basis within the RowUpdated event of a DataAdapter. Para continuar a operação de atualização sem gerar uma exceção dentro evento RowUpdated, defina a propriedade Status do RowUpdatedEventArgs como Continue.To continue the update operation without generating an exception within the RowUpdated event, set the Status property of the RowUpdatedEventArgs to Continue.

Aplica-se a

Update(DataRow[], DataTableMapping)

Atualiza os valores no banco de dados executando as respectivas instruções INSERT, UPDATE ou DELETE para cada linha inserida, atualizada ou excluída na matriz de objetos DataSet especificada.Updates the values in the database by executing the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the specified array of DataSet objects.

protected:
 virtual int Update(cli::array <System::Data::DataRow ^> ^ dataRows, System::Data::Common::DataTableMapping ^ tableMapping);
protected virtual int Update (System.Data.DataRow[] dataRows, System.Data.Common.DataTableMapping tableMapping);
override this.Update : System.Data.DataRow[] * System.Data.Common.DataTableMapping -> int
Protected Overridable Function Update (dataRows As DataRow(), tableMapping As DataTableMapping) As Integer

Parâmetros

dataRows
DataRow[]

Uma matriz de objetos DataRow usada para atualizar a fonte de dados.An array of DataRow objects used to update the data source.

tableMapping
DataTableMapping

A coleção TableMappings a ser usada.The TableMappings collection to use.

Retornos

Int32

O número de linhas atualizadas com êxito a partir do DataSet.The number of rows successfully updated from the DataSet.

Exceções

O DataSet é inválido.The DataSet is invalid.

A tabela de origem é inválida.The source table is invalid.

Não há nenhum DataRow para atualização.No DataRow exists to update.

- ou --or- Não há nenhum DataTable para atualização.No DataTable exists to update.

- ou --or- Não há nenhum DataSet para ser usado como uma fonte.No DataSet exists to use as a source.

Uma tentativa de executar uma instrução INSERT, UPDATE ou DELETE resultou em zero registro afetado.An attempt to execute an INSERT, UPDATE, or DELETE statement resulted in zero records affected.

Comentários

Quando um aplicativo chama o Update método, o DbDataAdapter examina a RowState propriedade e executa as instruções INSERT, Update ou DELETE necessárias iterativamente para cada linha, com base na ordem dos índices configurados no DataSet .When an application calls the Update method, the DbDataAdapter examines the RowState property, and executes the required INSERT, UPDATE, or DELETE statements iteratively for each row, based on the order of the indexes configured in the DataSet. Por exemplo, Update pode executar uma instrução DELETE, seguida por uma instrução INSERT, e outra instrução DELETE, devido à ordenação das linhas no DataTable .For example, Update might execute a DELETE statement, followed by an INSERT statement, and then another DELETE statement, due to the ordering of the rows in the DataTable.

Deve-se observar que essas instruções não são executadas como um processo em lote; cada linha é atualizada individualmente.It should be noted that these statements are not performed as a batch process; each row is updated individually. Um aplicativo pode chamar o GetChanges método em situações em que você deve controlar a sequência de tipos de instrução (por exemplo, inserções antes de atualizações).An application can call the GetChanges method in situations where you must control the sequence of statement types (for example, INSERTs before UPDATEs). Para obter mais informações, consulte Atualizando fontes de dados com DataAdapters.For more information, see Updating Data Sources with DataAdapters.

Se as instruções INSERT, UPDATE ou DELETE não tiverem sido especificadas, o Update método gerará uma exceção.If INSERT, UPDATE, or DELETE statements have not been specified, the Update method generates an exception. No entanto, é possível criar um objeto SqlCommandBuilder ou OleDbCommandBuilder para gerar automaticamente instruções SQL para atualizações de tabela única caso você defina a propriedade SelectCommand de um provedor de dados do .NET Framework.However, you can create a SqlCommandBuilder or OleDbCommandBuilder object to automatically generate SQL statements for single-table updates if you set the SelectCommand property of a .NET Framework data provider. Em seguida, quaisquer instruções SQL adicionais que você não definir serão geradas pelo CommandBuilder.Then, any additional SQL statements that you do not set are generated by the CommandBuilder. Esta lógica de geração requer que as informações da coluna principal estejam presente no DataSet.This generation logic requires key column information to be present in the DataSet. Para obter mais informações, consulte gerando comandos com CommandBuilders.For more information see Generating Commands with CommandBuilders.

O Update método recupera linhas da tabela listadas no primeiro mapeamento antes de executar uma atualização.The Update method retrieves rows from the table listed in the first mapping before performing an update. UpdateEm seguida, o atualiza a linha usando o valor da UpdatedRowSource propriedade.The Update then refreshes the row using the value of the UpdatedRowSource property. Todas as linhas adicionais retornadas são ignoradas.Any additional rows returned are ignored.

Depois que todos os dados são recarregados no DataSet, o evento OnRowUpdated é acionado, permitindo que o usuário inspecione a linha DataSet reconciliada e todos os parâmetros de saída retornados pelo comando.After any data is loaded back into the DataSet, the OnRowUpdated event is raised, allowing the user to inspect the reconciled DataSet row and any output parameters returned by the command. Depois que uma linha é atualizada com êxito, as alterações feitas nessa linha são aceitas.After a row updates successfully, the changes to that row are accepted.

Ao usar Update o, a ordem de execução é a seguinte:When using Update, the order of execution is as follows:

  1. Os valores no DataRow são movidos para os valores de parâmetro.The values in the DataRow are moved to the parameter values.

  2. O OnRowUpdating evento é gerado.The OnRowUpdating event is raised.

  3. O comando é executado.The command executes.

  4. Se o comando for definido como FirstReturnedRecord , o primeiro resultado retornado será colocado no DataRow .If the command is set to FirstReturnedRecord, then the first returned result is placed in the DataRow.

  5. Se houver parâmetros de saída, eles serão colocados no DataRow .If there are output parameters, they are placed in the DataRow.

  6. O OnRowUpdated evento é gerado.The OnRowUpdated event is raised.

  7. AcceptChanges é chamado.AcceptChanges is called.

Cada comando associado ao DbDataAdapter normalmente tem uma coleção de parâmetros associada a ele.Each command associated with the DbDataAdapter usually has a parameters collection associated with it. Os parâmetros são mapeados para a linha atual por meio das propriedades SourceColumn e SourceVersion da classe Parameter de um provedor de dados do .NET Framework.Parameters are mapped to the current row through the SourceColumn and SourceVersion properties of a .NET Framework data provider's Parameter class. SourceColumn refere-se a uma DataTable coluna que as DbDataAdapter referências obtêm valores de parâmetro para a linha atual.SourceColumn refers to a DataTable column that the DbDataAdapter references to obtain parameter values for the current row.

SourceColumn refere-se ao nome da coluna não mapeado antes da aplicação de qualquer mapeamento de tabela.SourceColumn refers to the unmapped column name before any table mappings have been applied. Caso SourceColumn refira-se a uma coluna inexistente, a ação tomada depende de um dos valores MissingMappingAction a seguir.If SourceColumn refers to a nonexistent column, the action taken depends on one of the following MissingMappingAction values.

Valor de enumeraçãoEnumeration value Ação executadaAction taken
MissingMappingAction.Passthrough Use os nomes de coluna de fonte e os nomes de tabela no DataSet caso nenhum mapeamento esteja presente.Use the source column names and table names in the DataSet if no mapping is present.
MissingMappingAction.Ignore Um SystemException é gerado.A SystemException is generated. Quando os mapeamentos são definidos explicitamente, um mapeamento ausente para um parâmetro de entrada geralmente é o resultado de um erro.When the mappings are explicitly set, a missing mapping for an input parameter is usually the result of an error.
MissingMappingAction.Error Um SystemException é gerado.A SystemException is generated.

A propriedade SourceColumn também é usada para remapear o valor para parâmetros de saída ou de entrada/saída para o DataSet.The SourceColumn property is also used to map the value for output or input/output parameters back to the DataSet. Uma exceção será gerada se fizer referência a uma coluna inexistente.An exception is generated if it refers to a nonexistent column.

A SourceVersion propriedade de uma classe do provedor de dados .NET Framework Parameter determina se a versão original, atual ou proposta do valor da coluna deve ser usada.The SourceVersion property of a .NET Framework data provider's Parameter class determines whether to use the Original, Current, or Proposed version of the column value. Esse recurso é frequentemente usado para incluir valores originais na cláusula WHERE de uma instrução UPDATE para verificar violações de simultaneidade otimistas.This capability is often used to include original values in the WHERE clause of an UPDATE statement to check for optimistic concurrency violations.

Observação

Caso ocorra um erro durante a atualização de uma linha, uma exceção é lançada e a execução da atualização é descontinuada.If an error occurs while updating a row, an exception is thrown and execution of the update is discontinued. Para continuar a operação de atualização sem gerar exceções quando um erro é encontrado, defina a propriedade ContinueUpdateOnError como true antes de chamar Update.To continue the update operation without generating exceptions when an error is encountered, set the ContinueUpdateOnError property to true before calling Update. Você também pode responder a erros linha por linha dentro do evento RowUpdated de um DataAdapter.You may also respond to errors on a per-row basis within the RowUpdated event of a DataAdapter. Para continuar a operação de atualização sem gerar uma exceção dentro evento RowUpdated, defina a propriedade Status do RowUpdatedEventArgs como Continue.To continue the update operation without generating an exception within the RowUpdated event, set the Status property of the RowUpdatedEventArgs to Continue.

Aplica-se a

Update(DataTable)

Atualiza os valores no banco de dados executando as respectivas instruções INSERT, UPDATE ou DELETE para cada linha inserida, atualizada ou excluída no DataTable especificado.Updates the values in the database by executing the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the specified DataTable.

public:
 int Update(System::Data::DataTable ^ dataTable);
public int Update (System.Data.DataTable dataTable);
override this.Update : System.Data.DataTable -> int
Public Function Update (dataTable As DataTable) As Integer

Parâmetros

dataTable
DataTable

O DataTable usado para atualizar a fonte de dados.The DataTable used to update the data source.

Retornos

Int32

O número de linhas atualizadas com êxito a partir do DataTable.The number of rows successfully updated from the DataTable.

Exceções

O DataSet é inválido.The DataSet is invalid.

A tabela de origem é inválida.The source table is invalid.

Não há nenhum DataRow para atualização.No DataRow exists to update.

- ou --or- Não há nenhum DataTable para atualização.No DataTable exists to update.

- ou --or- Não há nenhum DataSet para ser usado como uma fonte.No DataSet exists to use as a source.

Uma tentativa de executar uma instrução INSERT, UPDATE ou DELETE resultou em zero registro afetado.An attempt to execute an INSERT, UPDATE, or DELETE statement resulted in zero records affected.

Exemplos

O exemplo a seguir usa a classe derivada, OleDbDataAdapter , para atualizar a fonte de dados.The following example uses the derived class, OleDbDataAdapter, to update the data source.

public DataTable CreateCmdsAndUpdate(string connectionString,
    string queryString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        adapter.SelectCommand = new OleDbCommand(queryString, connection);
        OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

        connection.Open();

        DataTable customers = new DataTable();
        adapter.Fill(customers);

        // code to modify data in DataTable here

        adapter.Update(customers);

        return customers;
    }
}

Public Function CreateCmdsAndUpdate(ByVal connectionString As String, _
    ByVal queryString As String) As DataTable

    Using connection As New OleDbConnection(connectionString)
        Dim adapter As New OleDbDataAdapter()
        adapter.SelectCommand = New OleDbCommand(queryString, connection)
        Dim builder As New OleDbCommandBuilder(adapter)

        connection.Open()

        Dim customers As New DataTable()
        adapter.Fill(customers)

        ' Code to modify data in DataTable here 

        adapter.Update(customers)
        Return customers
    End Using
End Function

Comentários

Quando um aplicativo chama o Update método, o DbDataAdapter examina a RowState propriedade e executa as instruções INSERT, Update ou DELETE necessárias iterativamente para cada linha, com base na ordem dos índices configurados no DataSet .When an application calls the Update method, the DbDataAdapter examines the RowState property, and executes the required INSERT, UPDATE, or DELETE statements iteratively for each row, based on the order of the indexes configured in the DataSet. Por exemplo, Update pode executar uma instrução DELETE, seguida por uma instrução INSERT, e outra instrução DELETE, devido à ordenação das linhas no DataTable .For example, Update might execute a DELETE statement, followed by an INSERT statement, and then another DELETE statement, due to the ordering of the rows in the DataTable.

Deve-se observar que essas instruções não são executadas como um processo em lote; cada linha é atualizada individualmente.It should be noted that these statements are not performed as a batch process; each row is updated individually. Um aplicativo pode chamar o GetChanges método em situações em que você deve controlar a sequência de tipos de instrução (por exemplo, inserções antes de atualizações).An application can call the GetChanges method in situations where you must control the sequence of statement types (for example, INSERTs before UPDATEs). Para obter mais informações, consulte Atualizando fontes de dados com DataAdapters.For more information, see Updating Data Sources with DataAdapters.

Se as instruções INSERT, UPDATE ou DELETE não tiverem sido especificadas, o Update método gerará uma exceção.If INSERT, UPDATE, or DELETE statements have not been specified, the Update method generates an exception. No entanto, é possível criar um objeto SqlCommandBuilder ou OleDbCommandBuilder para gerar automaticamente instruções SQL para atualizações de tabela única caso você defina a propriedade SelectCommand de um provedor de dados do .NET Framework.However, you can create a SqlCommandBuilder or OleDbCommandBuilder object to automatically generate SQL statements for single-table updates if you set the SelectCommand property of a .NET Framework data provider. Em seguida, quaisquer instruções SQL adicionais que você não definir serão geradas pelo CommandBuilder.Then, any additional SQL statements that you do not set are generated by the CommandBuilder. Esta lógica de geração requer que as informações da coluna principal estejam presente no DataSet.This generation logic requires key column information to be present in the DataSet. Para obter mais informações, consulte gerando comandos com CommandBuilders.For more information see Generating Commands with CommandBuilders.

O Update método recupera linhas da tabela listadas no primeiro mapeamento antes de executar uma atualização.The Update method retrieves rows from the table listed in the first mapping before performing an update. UpdateEm seguida, o atualiza a linha usando o valor da UpdatedRowSource propriedade.The Update then refreshes the row using the value of the UpdatedRowSource property. Todas as linhas adicionais retornadas são ignoradas.Any additional rows returned are ignored.

Depois que todos os dados são recarregados no DataSet, o evento OnRowUpdated é acionado, permitindo que o usuário inspecione a linha DataSet reconciliada e todos os parâmetros de saída retornados pelo comando.After any data is loaded back into the DataSet, the OnRowUpdated event is raised, allowing the user to inspect the reconciled DataSet row and any output parameters returned by the command. Depois que uma linha é atualizada com êxito, as alterações feitas nessa linha são aceitas.After a row updates successfully, the changes to that row are accepted.

Ao usar Update o, a ordem de execução é a seguinte:When using Update, the order of execution is as follows:

  1. Os valores no DataRow são movidos para os valores de parâmetro.The values in the DataRow are moved to the parameter values.

  2. O OnRowUpdating evento é gerado.The OnRowUpdating event is raised.

  3. O comando é executado.The command executes.

  4. Se o comando for definido como FirstReturnedRecord , o primeiro resultado retornado será colocado no DataRow .If the command is set to FirstReturnedRecord, then the first returned result is placed in the DataRow.

  5. Se houver parâmetros de saída, eles serão colocados no DataRow .If there are output parameters, they are placed in the DataRow.

  6. O OnRowUpdated evento é gerado.The OnRowUpdated event is raised.

  7. AcceptChanges é chamado.AcceptChanges is called.

Cada comando associado ao DbDataAdapter normalmente tem uma coleção de parâmetros associada a ele.Each command associated with the DbDataAdapter usually has a parameters collection associated with it. Os parâmetros são mapeados para a linha atual por meio das propriedades SourceColumn e SourceVersion da classe Parameter de um provedor de dados do .NET Framework.Parameters are mapped to the current row through the SourceColumn and SourceVersion properties of a .NET Framework data provider's Parameter class. SourceColumn refere-se a uma DataTable coluna que as DbDataAdapter referências obtêm valores de parâmetro para a linha atual.SourceColumn refers to a DataTable column that the DbDataAdapter references to obtain parameter values for the current row.

SourceColumn refere-se ao nome da coluna não mapeado antes da aplicação de qualquer mapeamento de tabela.SourceColumn refers to the unmapped column name before any table mappings have been applied. Caso SourceColumn refira-se a uma coluna inexistente, a ação tomada depende de um dos valores MissingMappingAction a seguir.If SourceColumn refers to a nonexistent column, the action taken depends on one of the following MissingMappingAction values.

Valor de enumeraçãoEnumeration value Ação executadaAction taken
MissingMappingAction.Passthrough Use os nomes de coluna de fonte e os nomes de tabela no DataSet caso nenhum mapeamento esteja presente.Use the source column names and table names in the DataSet if no mapping is present.
MissingMappingAction.Ignore Um SystemException é gerado.A SystemException is generated. Quando os mapeamentos são definidos explicitamente, um mapeamento ausente para um parâmetro de entrada geralmente é o resultado de um erro.When the mappings are explicitly set, a missing mapping for an input parameter is usually the result of an error.
MissingMappingAction.Error Um SystemException é gerado.A SystemException is generated.

A propriedade SourceColumn também é usada para remapear o valor para parâmetros de saída ou de entrada/saída para o DataSet.The SourceColumn property is also used to map the value for output or input/output parameters back to the DataSet. Uma exceção será gerada se fizer referência a uma coluna inexistente.An exception is generated if it refers to a nonexistent column.

A SourceVersion propriedade de uma classe do provedor de dados .NET Framework Parameter determina se a versão original, atual ou proposta do valor da coluna deve ser usada.The SourceVersion property of a .NET Framework data provider's Parameter class determines whether to use the Original, Current, or Proposed version of the column value. Esse recurso é frequentemente usado para incluir valores originais na cláusula WHERE de uma instrução UPDATE para verificar violações de simultaneidade otimistas.This capability is often used to include original values in the WHERE clause of an UPDATE statement to check for optimistic concurrency violations.

Observação

Caso ocorra um erro durante a atualização de uma linha, uma exceção é lançada e a execução da atualização é descontinuada.If an error occurs while updating a row, an exception is thrown and execution of the update is discontinued. Para continuar a operação de atualização sem gerar exceções quando um erro é encontrado, defina a propriedade ContinueUpdateOnError como true antes de chamar Update.To continue the update operation without generating exceptions when an error is encountered, set the ContinueUpdateOnError property to true before calling Update. Você também pode responder a erros linha por linha dentro do evento RowUpdated de um DataAdapter.You may also respond to errors on a per-row basis within the RowUpdated event of a DataAdapter. Para continuar a operação de atualização sem gerar uma exceção dentro evento RowUpdated, defina a propriedade Status do RowUpdatedEventArgs como Continue.To continue the update operation without generating an exception within the RowUpdated event, set the Status property of the RowUpdatedEventArgs to Continue.

Aplica-se a

Update(DataSet)

Atualiza os valores no banco de dados executando as respectivas instruções INSERT, UPDATE ou DELETE para cada linha inserida, atualizada ou excluída no DataSet especificado.Updates the values in the database by executing the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the specified DataSet.

public:
 override int Update(System::Data::DataSet ^ dataSet);
public override int Update (System.Data.DataSet dataSet);
override this.Update : System.Data.DataSet -> int
Public Overrides Function Update (dataSet As DataSet) As Integer

Parâmetros

dataSet
DataSet

O DataSet usado para atualizar a fonte de dados.The DataSet used to update the data source.

Retornos

Int32

O número de linhas atualizadas com êxito a partir do DataSet.The number of rows successfully updated from the DataSet.

Implementações

Exceções

A tabela de origem é inválida.The source table is invalid.

Uma tentativa de executar uma instrução INSERT, UPDATE ou DELETE resultou em zero registro afetado.An attempt to execute an INSERT, UPDATE, or DELETE statement resulted in zero records affected.

Exemplos

O exemplo a seguir usa a classe derivada, OleDbDataAdapter , para atualizar a fonte de dados.The following example uses the derived class, OleDbDataAdapter, to update the data source.

public DataSet CreateCmdsAndUpdate(string connectionString,
    string queryString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        adapter.SelectCommand = new OleDbCommand(queryString, connection);
        OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

        connection.Open();

        DataSet customers = new DataSet();
        adapter.Fill(customers);

        //code to modify data in dataset here

        adapter.Update(customers);

        return customers;
    }
}
Public Function CreateCmdsAndUpdate(ByVal connectionString As String, _
    ByVal queryString As String) As DataSet

    Using connection As New OleDbConnection(connectionString)
        Dim adapter As New OleDbDataAdapter()
        adapter.SelectCommand = New OleDbCommand(queryString, connection)
        Dim builder As New OleDbCommandBuilder(adapter)

        connection.Open()

        Dim customers As New DataSet()
        adapter.Fill(customers)

        ' Code to modify data in DataSet here 

        adapter.Update(customers)

        Return customers
    End Using
End Function

Comentários

Quando um aplicativo chama o Update método, o DbDataAdapter examina a RowState propriedade e executa as instruções INSERT, Update ou DELETE necessárias iterativamente para cada linha, com base na ordem dos índices configurados no DataSet .When an application calls the Update method, the DbDataAdapter examines the RowState property, and executes the required INSERT, UPDATE, or DELETE statements iteratively for each row, based on the order of the indexes configured in the DataSet. Por exemplo, Update pode executar uma instrução DELETE, seguida por uma instrução INSERT, e outra instrução DELETE, devido à ordenação das linhas no DataTable .For example, Update might execute a DELETE statement, followed by an INSERT statement, and then another DELETE statement, due to the ordering of the rows in the DataTable.

Deve-se observar que essas instruções não são executadas como um processo em lote; cada linha é atualizada individualmente.It should be noted that these statements are not performed as a batch process; each row is updated individually. Um aplicativo pode chamar o GetChanges método em situações em que você deve controlar a sequência de tipos de instrução (por exemplo, inserções antes de atualizações).An application can call the GetChanges method in situations where you must control the sequence of statement types (for example, INSERTs before UPDATEs). Para obter mais informações, consulte Atualizando fontes de dados com DataAdapters.For more information, see Updating Data Sources with DataAdapters.

Se as instruções INSERT, UPDATE ou DELETE não tiverem sido especificadas, o Update método gerará uma exceção.If INSERT, UPDATE, or DELETE statements have not been specified, the Update method generates an exception. No entanto, é possível criar um objeto SqlCommandBuilder ou OleDbCommandBuilder para gerar automaticamente instruções SQL para atualizações de tabela única caso você defina a propriedade SelectCommand de um provedor de dados do .NET Framework.However, you can create a SqlCommandBuilder or OleDbCommandBuilder object to automatically generate SQL statements for single-table updates if you set the SelectCommand property of a .NET Framework data provider. Em seguida, quaisquer instruções SQL adicionais que você não definir serão geradas pelo CommandBuilder.Then, any additional SQL statements that you do not set are generated by the CommandBuilder. Esta lógica de geração requer que as informações da coluna principal estejam presente no DataSet.This generation logic requires key column information to be present in the DataSet. Para obter mais informações, consulte gerando comandos com CommandBuilders.For more information see Generating Commands with CommandBuilders.

O Update método recupera linhas da tabela listadas no primeiro mapeamento antes de executar uma atualização.The Update method retrieves rows from the table listed in the first mapping before performing an update. UpdateEm seguida, o atualiza a linha usando o valor da UpdatedRowSource propriedade.The Update then refreshes the row using the value of the UpdatedRowSource property. Todas as linhas adicionais retornadas são ignoradas.Any additional rows returned are ignored.

Depois que todos os dados são recarregados no DataSet, o evento OnRowUpdated é acionado, permitindo que o usuário inspecione a linha DataSet reconciliada e todos os parâmetros de saída retornados pelo comando.After any data is loaded back into the DataSet, the OnRowUpdated event is raised, allowing the user to inspect the reconciled DataSet row and any output parameters returned by the command. Depois que uma linha é atualizada com êxito, as alterações feitas nessa linha são aceitas.After a row updates successfully, the changes to that row are accepted.

Ao usar Update o, a ordem de execução é a seguinte:When using Update, the order of execution is as follows:

  1. Os valores no DataRow são movidos para os valores de parâmetro.The values in the DataRow are moved to the parameter values.

  2. O OnRowUpdating evento é gerado.The OnRowUpdating event is raised.

  3. O comando é executado.The command executes.

  4. Se o comando for definido como FirstReturnedRecord , o primeiro resultado retornado será colocado no DataRow .If the command is set to FirstReturnedRecord, then the first returned result is placed in the DataRow.

  5. Se houver parâmetros de saída, eles serão colocados no DataRow .If there are output parameters, they are placed in the DataRow.

  6. O OnRowUpdated evento é gerado.The OnRowUpdated event is raised.

  7. AcceptChanges é chamado.AcceptChanges is called.

Cada comando associado ao DbDataAdapter normalmente tem uma coleção de parâmetros associada a ele.Each command associated with the DbDataAdapter usually has a parameters collection associated with it. Os parâmetros são mapeados para a linha atual por meio das propriedades SourceColumn e SourceVersion da classe Parameter de um provedor de dados do .NET Framework.Parameters are mapped to the current row through the SourceColumn and SourceVersion properties of a .NET Framework data provider's Parameter class. SourceColumn refere-se a uma DataTable coluna que as DbDataAdapter referências obtêm valores de parâmetro para a linha atual.SourceColumn refers to a DataTable column that the DbDataAdapter references to obtain parameter values for the current row.

SourceColumn refere-se ao nome da coluna não mapeado antes da aplicação de qualquer mapeamento de tabela.SourceColumn refers to the unmapped column name before any table mappings have been applied. Caso SourceColumn refira-se a uma coluna inexistente, a ação tomada depende de um dos valores MissingMappingAction a seguir.If SourceColumn refers to a nonexistent column, the action taken depends on one of the following MissingMappingAction values.

Valor de enumeraçãoEnumeration value Ação executadaAction taken
MissingMappingAction.Passthrough Use os nomes de coluna de fonte e os nomes de tabela no DataSet caso nenhum mapeamento esteja presente.Use the source column names and table names in the DataSet if no mapping is present.
MissingMappingAction.Ignore Um SystemException é gerado.A SystemException is generated. Quando os mapeamentos são definidos explicitamente, um mapeamento ausente para um parâmetro de entrada geralmente é o resultado de um erro.When the mappings are explicitly set, a missing mapping for an input parameter is usually the result of an error.
MissingMappingAction.Error Um SystemException é gerado.A SystemException is generated.

A propriedade SourceColumn também é usada para remapear o valor para parâmetros de saída ou de entrada/saída para o DataSet.The SourceColumn property is also used to map the value for output or input/output parameters back to the DataSet. Uma exceção será gerada se fizer referência a uma coluna inexistente.An exception is generated if it refers to a nonexistent column.

A SourceVersion propriedade de uma classe do provedor de dados .NET Framework Parameter determina se a versão original, atual ou proposta do valor da coluna deve ser usada.The SourceVersion property of a .NET Framework data provider's Parameter class determines whether to use the Original, Current, or Proposed version of the column value. Esse recurso é frequentemente usado para incluir valores originais na cláusula WHERE de uma instrução UPDATE para verificar violações de simultaneidade otimistas.This capability is often used to include original values in the WHERE clause of an UPDATE statement to check for optimistic concurrency violations.

Observação

Caso ocorra um erro durante a atualização de uma linha, uma exceção é lançada e a execução da atualização é descontinuada.If an error occurs while updating a row, an exception is thrown and execution of the update is discontinued. Para continuar a operação de atualização sem gerar exceções quando um erro é encontrado, defina a propriedade ContinueUpdateOnError como true antes de chamar Update.To continue the update operation without generating exceptions when an error is encountered, set the ContinueUpdateOnError property to true before calling Update. Você também pode responder a erros linha por linha dentro do evento RowUpdated de um DataAdapter.You may also respond to errors on a per-row basis within the RowUpdated event of a DataAdapter. Para continuar a operação de atualização sem gerar uma exceção dentro evento RowUpdated, defina a propriedade Status do RowUpdatedEventArgs como Continue.To continue the update operation without generating an exception within the RowUpdated event, set the Status property of the RowUpdatedEventArgs to Continue.

Aplica-se a

Update(DataRow[])

Atualiza os valores no banco de dados executando as respectivas instruções INSERT, UPDATE ou DELETE para cada linha inserida, atualizada ou excluída na matriz especificada no DataSet.Updates the values in the database by executing the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the specified array in the DataSet.

public:
 int Update(cli::array <System::Data::DataRow ^> ^ dataRows);
public int Update (System.Data.DataRow[] dataRows);
override this.Update : System.Data.DataRow[] -> int
Public Function Update (dataRows As DataRow()) As Integer

Parâmetros

dataRows
DataRow[]

Uma matriz de objetos DataRow usada para atualizar a fonte de dados.An array of DataRow objects used to update the data source.

Retornos

Int32

O número de linhas atualizadas com êxito a partir do DataSet.The number of rows successfully updated from the DataSet.

Exceções

O DataSet é inválido.The DataSet is invalid.

A tabela de origem é inválida.The source table is invalid.

Não há nenhum DataRow para atualização.No DataRow exists to update.

- ou --or- Não há nenhum DataTable para atualização.No DataTable exists to update.

- ou --or- Não há nenhum DataSet para ser usado como uma fonte.No DataSet exists to use as a source.

Uma tentativa de executar uma instrução INSERT, UPDATE ou DELETE resultou em zero registro afetado.An attempt to execute an INSERT, UPDATE, or DELETE statement resulted in zero records affected.

Exemplos

O exemplo a seguir usa a classe derivada, OleDbDataAdapter , para atualizar a fonte de dados.The following example uses the derived class, OleDbDataAdapter, to update the data source.

public DataSet CreateCmdsAndUpdate(string connectionString,
    string queryString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        adapter.SelectCommand = new OleDbCommand(queryString, connection);
        OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

        connection.Open();

        DataSet customers = new DataSet();
        adapter.Fill(customers);

        //code to modify data in dataset here

        //Insert new records from DataSet
        DataRow[] rows = customers.Tables[0].Select(
            null, null, DataViewRowState.Added);
        adapter.Update(rows);

        return customers;
    }
}
Public Function CreateCmdsAndUpdate(ByVal connectionString As String, _
    ByVal queryString As String) As DataSet

    Using connection As New OleDbConnection(connectionString)
        Dim adapter As New OleDbDataAdapter()
        adapter.SelectCommand = New OleDbCommand(queryString, connection)
        Dim builder As New OleDbCommandBuilder(adapter)

        connection.Open()

        Dim customers As New DataSet()
        adapter.Fill(customers)

        ' Code to modify data in DataSet here 

        ' Insert new records from DataSet
        Dim rows() As DataRow = customers.Tables(0).Select( _
            Nothing, Nothing, DataViewRowState.Added)
        adapter.Update(rows)

        Return customers
    End Using
End Function

Comentários

Quando um aplicativo chama o Update método, o DbDataAdapter examina a RowState propriedade e executa as instruções INSERT, Update ou DELETE necessárias iterativamente para cada linha, com base na ordem dos índices configurados no DataSet .When an application calls the Update method, the DbDataAdapter examines the RowState property, and executes the required INSERT, UPDATE, or DELETE statements iteratively for each row, based on the order of the indexes configured in the DataSet. Por exemplo, Update pode executar uma instrução DELETE, seguida por uma instrução INSERT, e outra instrução DELETE, devido à ordenação das linhas no DataTable .For example, Update might execute a DELETE statement, followed by an INSERT statement, and then another DELETE statement, due to the ordering of the rows in the DataTable.

Deve-se observar que essas instruções não são executadas como um processo em lote; cada linha é atualizada individualmente.It should be noted that these statements are not performed as a batch process; each row is updated individually. Um aplicativo pode chamar o GetChanges método em situações em que você deve controlar a sequência de tipos de instrução (por exemplo, inserções antes de atualizações).An application can call the GetChanges method in situations where you must control the sequence of statement types (for example, INSERTs before UPDATEs). Para obter mais informações, consulte Atualizando fontes de dados com DataAdapters.For more information, see Updating Data Sources with DataAdapters.

Se as instruções INSERT, UPDATE ou DELETE não tiverem sido especificadas, o Update método gerará uma exceção.If INSERT, UPDATE, or DELETE statements have not been specified, the Update method generates an exception. No entanto, é possível criar um objeto SqlCommandBuilder ou OleDbCommandBuilder para gerar automaticamente instruções SQL para atualizações de tabela única caso você defina a propriedade SelectCommand de um provedor de dados do .NET Framework.However, you can create a SqlCommandBuilder or OleDbCommandBuilder object to automatically generate SQL statements for single-table updates if you set the SelectCommand property of a .NET Framework data provider. Em seguida, quaisquer instruções SQL adicionais que você não definir serão geradas pelo CommandBuilder.Then, any additional SQL statements that you do not set are generated by the CommandBuilder. Esta lógica de geração requer que as informações da coluna principal estejam presente no DataSet.This generation logic requires key column information to be present in the DataSet. Para obter mais informações, consulte gerando comandos com CommandBuilders.For more information see Generating Commands with CommandBuilders.

O Update método recupera linhas da tabela listadas no primeiro mapeamento antes de executar uma atualização.The Update method retrieves rows from the table listed in the first mapping before performing an update. UpdateEm seguida, o atualiza a linha usando o valor da UpdatedRowSource propriedade.The Update then refreshes the row using the value of the UpdatedRowSource property. Todas as linhas adicionais retornadas são ignoradas.Any additional rows returned are ignored.

Depois que todos os dados são recarregados no DataSet, o evento OnRowUpdated é acionado, permitindo que o usuário inspecione a linha DataSet reconciliada e todos os parâmetros de saída retornados pelo comando.After any data is loaded back into the DataSet, the OnRowUpdated event is raised, allowing the user to inspect the reconciled DataSet row and any output parameters returned by the command. Depois que uma linha é atualizada com êxito, as alterações feitas nessa linha são aceitas.After a row updates successfully, the changes to that row are accepted.

Ao usar Update o, a ordem de execução é a seguinte:When using Update, the order of execution is as follows:

  1. Os valores no DataRow são movidos para os valores de parâmetro.The values in the DataRow are moved to the parameter values.

  2. O OnRowUpdating evento é gerado.The OnRowUpdating event is raised.

  3. O comando é executado.The command executes.

  4. Se o comando for definido como FirstReturnedRecord , o primeiro resultado retornado será colocado no DataRow .If the command is set to FirstReturnedRecord, the first returned result is placed in the DataRow.

  5. Se houver parâmetros de saída, eles serão colocados no DataRow .If there are output parameters, they are placed in the DataRow.

  6. O OnRowUpdated evento é gerado.The OnRowUpdated event is raised.

  7. AcceptChanges é chamado.AcceptChanges is called.

Cada comando associado ao DbDataAdapter normalmente tem uma coleção de parâmetros associada a ele.Each command associated with the DbDataAdapter usually has a parameters collection associated with it. Os parâmetros são mapeados para a linha atual por meio das propriedades SourceColumn e SourceVersion da classe Parameter de um provedor de dados do .NET Framework.Parameters are mapped to the current row through the SourceColumn and SourceVersion properties of a .NET Framework data provider's Parameter class. SourceColumn refere-se a uma DataTable coluna que as DbDataAdapter referências obtêm valores de parâmetro para a linha atual.SourceColumn refers to a DataTable column that the DbDataAdapter references to obtain parameter values for the current row.

SourceColumn refere-se ao nome da coluna não mapeado antes da aplicação de qualquer mapeamento de tabela.SourceColumn refers to the unmapped column name before any table mappings have been applied. Caso SourceColumn refira-se a uma coluna inexistente, a ação tomada depende de um dos valores MissingMappingAction a seguir.If SourceColumn refers to a nonexistent column, the action taken depends on one of the following MissingMappingAction values.

Valor de enumeraçãoEnumeration value Ação executadaAction taken
MissingMappingAction.Passthrough Use os nomes de coluna de fonte e os nomes de tabela no DataSet caso nenhum mapeamento esteja presente.Use the source column names and table names in the DataSet if no mapping is present.
MissingMappingAction.Ignore Um SystemException é gerado.A SystemException is generated. Quando os mapeamentos são definidos explicitamente, um mapeamento ausente para um parâmetro de entrada geralmente é o resultado de um erro.When the mappings are explicitly set, a missing mapping for an input parameter is usually the result of an error.
MissingMappingAction.Error Um SystemException é gerado.A SystemException is generated.

A propriedade SourceColumn também é usada para remapear o valor para parâmetros de saída ou de entrada/saída para o DataSet.The SourceColumn property is also used to map the value for output or input/output parameters back to the DataSet. Uma exceção será gerada se fizer referência a uma coluna inexistente.An exception is generated if it refers to a nonexistent column.

A SourceVersion propriedade de uma classe do provedor de dados .NET Framework Parameter determina se a versão original, atual ou proposta do valor da coluna deve ser usada.The SourceVersion property of a .NET Framework data provider's Parameter class determines whether to use the Original, Current, or Proposed version of the column value. Esse recurso é frequentemente usado para incluir valores originais na cláusula WHERE de uma instrução UPDATE para verificar violações de simultaneidade otimistas.This capability is often used to include original values in the WHERE clause of an UPDATE statement to check for optimistic concurrency violations.

Observação

Caso ocorra um erro durante a atualização de uma linha, uma exceção é lançada e a execução da atualização é descontinuada.If an error occurs while updating a row, an exception is thrown and execution of the update is discontinued. Para continuar a operação de atualização sem gerar exceções quando um erro é encontrado, defina a propriedade ContinueUpdateOnError como true antes de chamar Update.To continue the update operation without generating exceptions when an error is encountered, set the ContinueUpdateOnError property to true before calling Update. Você também pode responder a erros linha por linha dentro do evento RowUpdated de um DataAdapter.You may also respond to errors on a per-row basis within the RowUpdated event of a DataAdapter. Para continuar a operação de atualização sem gerar uma exceção dentro evento RowUpdated, defina a propriedade Status do RowUpdatedEventArgs como Continue.To continue the update operation without generating an exception within the RowUpdated event, set the Status property of the RowUpdatedEventArgs to Continue.

Aplica-se a