DbDataAdapter.Update Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Actualiza los valores de la base de datos ejecutando las instrucciones INSERT, UPDATE o DELETE correspondientes para cada fila insertada, actualizada o eliminada en DataSet.
Sobrecargas
| Nombre | Description |
|---|---|
| Update(DataSet, String) |
Actualiza los valores de la base de datos ejecutando las instrucciones INSERT, UPDATE o DELETE respectivas para cada fila insertada, actualizada o eliminada en con DataSet el nombre especificado DataTable . |
| Update(DataRow[], DataTableMapping) |
Actualiza los valores de la base de datos ejecutando las instrucciones INSERT, UPDATE o DELETE correspondientes para cada fila insertada, actualizada o eliminada en la matriz de DataRow objetos especificada. |
| Update(DataTable) |
Actualiza los valores de la base de datos ejecutando las instrucciones INSERT, UPDATE o DELETE correspondientes para cada fila insertada, actualizada o eliminada en el especificado DataTable. |
| Update(DataSet) |
Actualiza los valores de la base de datos ejecutando las instrucciones INSERT, UPDATE o DELETE correspondientes para cada fila insertada, actualizada o eliminada en el especificado DataSet. |
| Update(DataRow[]) |
Actualiza los valores de la base de datos ejecutando las instrucciones INSERT, UPDATE o DELETE correspondientes para cada fila insertada, actualizada o eliminada de la matriz especificada en DataSet. |
Update(DataSet, String)
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
public:
int Update(System::Data::DataSet ^ dataSet, System::String ^ srcTable);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
public int Update(System.Data.DataSet dataSet, string srcTable);
public int Update(System.Data.DataSet dataSet, string srcTable);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
override this.Update : System.Data.DataSet * string -> int
override this.Update : System.Data.DataSet * string -> int
Public Function Update (dataSet As DataSet, srcTable As String) As Integer
Parámetros
- srcTable
- String
Nombre de la tabla de origen que se va a usar para la asignación de tablas.
Devoluciones
Número de filas actualizadas correctamente desde DataSet.
- Atributos
Excepciones
No DataSet es válido.
La tabla de origen no es válida.
Un intento de ejecutar una instrucción INSERT, UPDATE o DELETE dio lugar a cero registros afectados.
Ejemplos
En el ejemplo siguiente se usa la clase derivada , OleDbDataAdapter, para actualizar el origen de datos.
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
Comentarios
Cuando una aplicación llama al Update método , DbDataAdapter examina la RowState propiedad y ejecuta las instrucciones INSERT, UPDATE o DELETE necesarias de forma iterativa para cada fila, en función del orden de los índices configurados en DataSet. Por ejemplo, Update podría ejecutar una instrucción DELETE, seguida de una instrucción INSERT y, a continuación, otra instrucción DELETE, debido al orden de las filas de DataTable.
Debe tenerse en cuenta que estas instrucciones no se realizan como un proceso por lotes; cada fila se actualiza individualmente. Una aplicación puede llamar al GetChanges método en situaciones en las que debe controlar la secuencia de tipos de instrucción (por ejemplo, INSERT antes de UPDATE). Para obtener más información, consulte Actualización de orígenes de datos con DataAdapters.
Si no se han especificado instrucciones INSERT, UPDATE o DELETE, el Update método genera una excepción. Sin embargo, puede crear un SqlCommandBuilder objeto o OleDbCommandBuilder para generar automáticamente instrucciones SQL para actualizaciones de tabla única si establece la SelectCommand propiedad de un proveedor de datos de .NET Framework. A continuación, el CommandBuilder genera cualquier instrucción SQL adicional que no establezca. Esta lógica de generación requiere que la información de columna de clave esté presente en .DataSet Para obtener más información, vea Generar comandos con CommandBuilders.
El Update método admite escenarios en DataSet los que contiene varios DataTable objetos cuyos nombres solo difieren por mayúsculas y minúsculas. Cuando varias tablas con el mismo nombre, pero mayúsculas y minúsculas diferentes, existen en , DataSetUpdate realiza una comparación que distingue mayúsculas de minúsculas para buscar la tabla correspondiente y genera una excepción si no existe ninguna coincidencia exacta. El siguiente código de C# muestra este comportamiento.
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.
Si Update se llama a y contiene DataSet solo uno DataTable cuyo nombre difiere solo por caso, se DataTable actualiza. En este escenario, la comparación no distingue mayúsculas de minúsculas. El siguiente código de C# muestra este comportamiento.
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.
El Update método recupera las filas de la tabla enumeradas en la primera asignación antes de realizar una actualización. A Update continuación, actualiza la fila mediante el valor de la UpdatedRowSource propiedad . Se omiten las filas adicionales devueltas.
Una vez cargados los datos en DataSet, se genera el OnRowUpdated evento , lo que permite al usuario inspeccionar la fila reconciliada DataSet y los parámetros de salida devueltos por el comando . Una vez que una fila se actualiza correctamente, se aceptan los cambios en esa fila.
Cuando se usa Update, el orden de ejecución es el siguiente:
Los valores de DataRow se mueven a los valores de parámetro.
Se genera el evento OnRowUpdating.
El comando se ejecuta.
Si el comando se establece
FirstReturnedRecorden , el primer resultado devuelto se coloca en .DataRowSi hay parámetros de salida, se colocan en .DataRow
Se genera el evento OnRowUpdated.
Se llama a AcceptChanges.
Cada comando asociado a DbDataAdapter normalmente tiene una colección de parámetros asociada. Los parámetros se asignan a la fila actual a través de las SourceColumn propiedades y SourceVersion de la clase de Parameter un proveedor de datos de .NET Framework.
SourceColumn hace referencia a una DataTable columna que hace DbDataAdapter referencia a para obtener valores de parámetro para la fila actual.
SourceColumn hace referencia al nombre de columna no asignado antes de que se hayan aplicado asignaciones de tabla. Si SourceColumn hace referencia a una columna inexistente, la acción realizada depende de uno de los valores siguientes MissingMappingAction .
| Valor de enumeración | Acción realizada |
|---|---|
MissingMappingAction.Passthrough |
Use los nombres de columna de origen y los nombres de tabla en DataSet si no hay ninguna asignación presente. |
MissingMappingAction.Ignore |
Se genera un SystemException . Cuando las asignaciones se establecen explícitamente, una asignación que falta para un parámetro de entrada suele ser el resultado de un error. |
MissingMappingAction.Error |
Se genera un SystemException . |
La SourceColumn propiedad también se usa para asignar el valor de los parámetros output o input/output a .DataSet Se genera una excepción si hace referencia a una columna inexistente.
La SourceVersion propiedad de la clase del Parameter proveedor de datos de .NET Framework determina si se debe usar la versión original, actual o propuesta del valor de columna. Esta funcionalidad se suele usar para incluir valores originales en la cláusula WHERE de una instrucción UPDATE para comprobar si hay infracciones de simultaneidad optimista.
Nota:
Si se produce un error al actualizar una fila, se produce una excepción y se interrumpe la ejecución de la actualización. Para continuar con la operación de actualización sin generar excepciones cuando se encuentra un error, establezca la ContinueUpdateOnError propiedad true en antes de llamar a Update. También puede responder a errores por fila dentro del RowUpdated evento de un DataAdapter. Para continuar con la operación de actualización sin generar una excepción dentro del RowUpdated evento, establezca la Status propiedad de en ContinueRowUpdatedEventArgs .
Consulte también
Se aplica a
Update(DataRow[], DataTableMapping)
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
Actualiza los valores de la base de datos ejecutando las instrucciones INSERT, UPDATE o DELETE correspondientes para cada fila insertada, actualizada o eliminada en la matriz de DataRow objetos especificada.
protected:
virtual int Update(cli::array <System::Data::DataRow ^> ^ dataRows, System::Data::Common::DataTableMapping ^ tableMapping);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
protected virtual int Update(System.Data.DataRow[] dataRows, System.Data.Common.DataTableMapping tableMapping);
protected virtual int Update(System.Data.DataRow[] dataRows, System.Data.Common.DataTableMapping tableMapping);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
override this.Update : System.Data.DataRow[] * System.Data.Common.DataTableMapping -> int
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
- tableMapping
- DataTableMapping
Colección TableMappings que se va a usar.
Devoluciones
Número de filas actualizadas correctamente a partir de la matriz de DataRow objetos .
- Atributos
Excepciones
No DataSet es válido.
La tabla de origen no es válida.
No DataRow existe para actualizar.
O bien
No DataTable existe para actualizar.
O bien
No DataSet existe para usarlo como origen.
Un intento de ejecutar una instrucción INSERT, UPDATE o DELETE dio lugar a cero registros afectados.
Comentarios
Cuando una aplicación llama al Update método , DbDataAdapter examina la RowState propiedad y ejecuta las instrucciones INSERT, UPDATE o DELETE necesarias de forma iterativa para cada fila, en función del orden de los índices configurados en DataSet. Por ejemplo, Update podría ejecutar una instrucción DELETE, seguida de una instrucción INSERT y, a continuación, otra instrucción DELETE, debido al orden de las filas de DataTable.
Debe tenerse en cuenta que estas instrucciones no se realizan como un proceso por lotes; cada fila se actualiza individualmente. Una aplicación puede llamar al GetChanges método en situaciones en las que debe controlar la secuencia de tipos de instrucción (por ejemplo, INSERT antes de UPDAT). Para obtener más información, consulte Actualización de orígenes de datos con DataAdapters.
Si no se han especificado instrucciones INSERT, UPDATE o DELETE, el Update método genera una excepción. Sin embargo, puede crear un SqlCommandBuilder objeto o OleDbCommandBuilder para generar automáticamente instrucciones SQL para actualizaciones de tabla única si establece la SelectCommand propiedad de un proveedor de datos de .NET Framework. A continuación, el CommandBuilder genera cualquier instrucción SQL adicional que no establezca. Esta lógica de generación requiere que la información de columna de clave esté presente en .DataSet Para obtener más información, vea Generar comandos con CommandBuilders.
El Update método recupera las filas de la tabla enumeradas en la primera asignación antes de realizar una actualización. A Update continuación, actualiza la fila mediante el valor de la UpdatedRowSource propiedad . Se omiten las filas adicionales devueltas.
Una vez cargados los datos en DataSet, se genera el OnRowUpdated evento , lo que permite al usuario inspeccionar la fila reconciliada DataSet y los parámetros de salida devueltos por el comando . Una vez que una fila se actualiza correctamente, se aceptan los cambios en esa fila.
Cuando se usa Update, el orden de ejecución es el siguiente:
Los valores de DataRow se mueven a los valores de parámetro.
Se genera el evento OnRowUpdating.
El comando se ejecuta.
Si el comando se establece
FirstReturnedRecorden , el primer resultado devuelto se coloca en .DataRowSi hay parámetros de salida, se colocan en .DataRow
Se genera el evento OnRowUpdated.
Se llama a AcceptChanges.
Cada comando asociado a DbDataAdapter normalmente tiene una colección de parámetros asociada. Los parámetros se asignan a la fila actual a través de las SourceColumn propiedades y SourceVersion de la clase de Parameter un proveedor de datos de .NET Framework.
SourceColumn hace referencia a una DataTable columna que hace DbDataAdapter referencia a para obtener valores de parámetro para la fila actual.
SourceColumn hace referencia al nombre de columna no asignado antes de que se hayan aplicado asignaciones de tabla. Si SourceColumn hace referencia a una columna inexistente, la acción realizada depende de uno de los valores siguientes MissingMappingAction .
| Valor de enumeración | Acción realizada |
|---|---|
MissingMappingAction.Passthrough |
Use los nombres de columna de origen y los nombres de tabla en DataSet si no hay ninguna asignación presente. |
MissingMappingAction.Ignore |
Se genera un SystemException . Cuando las asignaciones se establecen explícitamente, una asignación que falta para un parámetro de entrada suele ser el resultado de un error. |
MissingMappingAction.Error |
Se genera un SystemException . |
La SourceColumn propiedad también se usa para asignar el valor de los parámetros output o input/output a .DataSet Se genera una excepción si hace referencia a una columna inexistente.
La SourceVersion propiedad de la clase del Parameter proveedor de datos de .NET Framework determina si se debe usar la versión original, actual o propuesta del valor de columna. Esta funcionalidad se suele usar para incluir valores originales en la cláusula WHERE de una instrucción UPDATE para comprobar si hay infracciones de simultaneidad optimista.
Nota:
Si se produce un error al actualizar una fila, se produce una excepción y se interrumpe la ejecución de la actualización. Para continuar con la operación de actualización sin generar excepciones cuando se encuentra un error, establezca la ContinueUpdateOnError propiedad true en antes de llamar a Update. También puede responder a errores por fila dentro del RowUpdated evento de un DataAdapter. Para continuar con la operación de actualización sin generar una excepción dentro del RowUpdated evento, establezca la Status propiedad de en ContinueRowUpdatedEventArgs .
Consulte también
Se aplica a
Update(DataTable)
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
Actualiza los valores de la base de datos ejecutando las instrucciones INSERT, UPDATE o DELETE correspondientes para cada fila insertada, actualizada o eliminada en el especificado DataTable.
public:
int Update(System::Data::DataTable ^ dataTable);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
public int Update(System.Data.DataTable dataTable);
public int Update(System.Data.DataTable dataTable);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
override this.Update : System.Data.DataTable -> int
override this.Update : System.Data.DataTable -> int
Public Function Update (dataTable As DataTable) As Integer
Parámetros
Devoluciones
Número de filas actualizadas correctamente desde DataTable.
- Atributos
Excepciones
No DataSet es válido.
La tabla de origen no es válida.
No DataRow existe para actualizar.
O bien
No DataTable existe para actualizar.
O bien
No DataSet existe para usarlo como origen.
Un intento de ejecutar una instrucción INSERT, UPDATE o DELETE dio lugar a cero registros afectados.
Ejemplos
En el ejemplo siguiente se usa la clase derivada , OleDbDataAdapter, para actualizar el origen de datos.
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
Comentarios
Cuando una aplicación llama al Update método , DbDataAdapter examina la RowState propiedad y ejecuta las instrucciones INSERT, UPDATE o DELETE necesarias de forma iterativa para cada fila, en función del orden de los índices configurados en DataSet. Por ejemplo, Update podría ejecutar una instrucción DELETE, seguida de una instrucción INSERT y, a continuación, otra instrucción DELETE, debido al orden de las filas de DataTable.
Debe tenerse en cuenta que estas instrucciones no se realizan como un proceso por lotes; cada fila se actualiza individualmente. Una aplicación puede llamar al GetChanges método en situaciones en las que debe controlar la secuencia de tipos de instrucción (por ejemplo, INSERT antes de UPDAT). Para obtener más información, consulte Actualización de orígenes de datos con DataAdapters.
Si no se han especificado instrucciones INSERT, UPDATE o DELETE, el Update método genera una excepción. Sin embargo, puede crear un SqlCommandBuilder objeto o OleDbCommandBuilder para generar automáticamente instrucciones SQL para actualizaciones de tabla única si establece la SelectCommand propiedad de un proveedor de datos de .NET Framework. A continuación, el CommandBuilder genera cualquier instrucción SQL adicional que no establezca. Esta lógica de generación requiere que la información de columna de clave esté presente en .DataSet Para obtener más información, vea Generar comandos con CommandBuilders.
El Update método recupera las filas de la tabla enumeradas en la primera asignación antes de realizar una actualización. A Update continuación, actualiza la fila mediante el valor de la UpdatedRowSource propiedad . Se omiten las filas adicionales devueltas.
Una vez cargados los datos en DataSet, se genera el OnRowUpdated evento , lo que permite al usuario inspeccionar la fila reconciliada DataSet y los parámetros de salida devueltos por el comando . Una vez que una fila se actualiza correctamente, se aceptan los cambios en esa fila.
Cuando se usa Update, el orden de ejecución es el siguiente:
Los valores de DataRow se mueven a los valores de parámetro.
Se genera el evento OnRowUpdating.
El comando se ejecuta.
Si el comando se establece
FirstReturnedRecorden , el primer resultado devuelto se coloca en .DataRowSi hay parámetros de salida, se colocan en .DataRow
Se genera el evento OnRowUpdated.
Se llama a AcceptChanges.
Cada comando asociado a DbDataAdapter normalmente tiene una colección de parámetros asociada. Los parámetros se asignan a la fila actual a través de las SourceColumn propiedades y SourceVersion de la clase de Parameter un proveedor de datos de .NET Framework.
SourceColumn hace referencia a una DataTable columna que hace DbDataAdapter referencia a para obtener valores de parámetro para la fila actual.
SourceColumn hace referencia al nombre de columna no asignado antes de que se hayan aplicado asignaciones de tabla. Si SourceColumn hace referencia a una columna inexistente, la acción realizada depende de uno de los valores siguientes MissingMappingAction .
| Valor de enumeración | Acción realizada |
|---|---|
MissingMappingAction.Passthrough |
Use los nombres de columna de origen y los nombres de tabla en DataSet si no hay ninguna asignación presente. |
MissingMappingAction.Ignore |
Se genera un SystemException . Cuando las asignaciones se establecen explícitamente, una asignación que falta para un parámetro de entrada suele ser el resultado de un error. |
MissingMappingAction.Error |
Se genera un SystemException . |
La SourceColumn propiedad también se usa para asignar el valor de los parámetros output o input/output a .DataSet Se genera una excepción si hace referencia a una columna inexistente.
La SourceVersion propiedad de la clase del Parameter proveedor de datos de .NET Framework determina si se debe usar la versión original, actual o propuesta del valor de columna. Esta funcionalidad se suele usar para incluir valores originales en la cláusula WHERE de una instrucción UPDATE para comprobar si hay infracciones de simultaneidad optimista.
Nota:
Si se produce un error al actualizar una fila, se produce una excepción y se interrumpe la ejecución de la actualización. Para continuar con la operación de actualización sin generar excepciones cuando se encuentra un error, establezca la ContinueUpdateOnError propiedad true en antes de llamar a Update. También puede responder a errores por fila dentro del RowUpdated evento de un DataAdapter. Para continuar con la operación de actualización sin generar una excepción dentro del RowUpdated evento, establezca la Status propiedad de en ContinueRowUpdatedEventArgs .
Consulte también
Se aplica a
Update(DataSet)
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
Actualiza los valores de la base de datos ejecutando las instrucciones INSERT, UPDATE o DELETE correspondientes para cada fila insertada, actualizada o eliminada en el especificado DataSet.
public:
override int Update(System::Data::DataSet ^ dataSet);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
public override int Update(System.Data.DataSet dataSet);
public override int Update(System.Data.DataSet dataSet);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
override this.Update : System.Data.DataSet -> int
override this.Update : System.Data.DataSet -> int
Public Overrides Function Update (dataSet As DataSet) As Integer
Parámetros
Devoluciones
Número de filas actualizadas correctamente desde DataSet.
Implementaciones
- Atributos
Excepciones
La tabla de origen no es válida.
Un intento de ejecutar una instrucción INSERT, UPDATE o DELETE dio lugar a cero registros afectados.
Ejemplos
En el ejemplo siguiente se usa la clase derivada , OleDbDataAdapter, para actualizar el origen de datos.
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
Comentarios
Cuando una aplicación llama al Update método , DbDataAdapter examina la RowState propiedad y ejecuta las instrucciones INSERT, UPDATE o DELETE necesarias de forma iterativa para cada fila, en función del orden de los índices configurados en DataSet. Por ejemplo, Update podría ejecutar una instrucción DELETE, seguida de una instrucción INSERT y, a continuación, otra instrucción DELETE, debido al orden de las filas de DataTable.
Debe tenerse en cuenta que estas instrucciones no se realizan como un proceso por lotes; cada fila se actualiza individualmente. Una aplicación puede llamar al GetChanges método en situaciones en las que debe controlar la secuencia de tipos de instrucción (por ejemplo, INSERT antes de UPDAT). Para obtener más información, consulte Actualización de orígenes de datos con DataAdapters.
Si no se han especificado instrucciones INSERT, UPDATE o DELETE, el Update método genera una excepción. Sin embargo, puede crear un SqlCommandBuilder objeto o OleDbCommandBuilder para generar automáticamente instrucciones SQL para actualizaciones de tabla única si establece la SelectCommand propiedad de un proveedor de datos de .NET Framework. A continuación, el CommandBuilder genera cualquier instrucción SQL adicional que no establezca. Esta lógica de generación requiere que la información de columna de clave esté presente en .DataSet Para obtener más información, vea Generar comandos con CommandBuilders.
El Update método recupera las filas de la tabla enumeradas en la primera asignación antes de realizar una actualización. A Update continuación, actualiza la fila mediante el valor de la UpdatedRowSource propiedad . Se omiten las filas adicionales devueltas.
Una vez cargados los datos en DataSet, se genera el OnRowUpdated evento , lo que permite al usuario inspeccionar la fila reconciliada DataSet y los parámetros de salida devueltos por el comando . Una vez que una fila se actualiza correctamente, se aceptan los cambios en esa fila.
Cuando se usa Update, el orden de ejecución es el siguiente:
Los valores de DataRow se mueven a los valores de parámetro.
Se genera el evento OnRowUpdating.
El comando se ejecuta.
Si el comando se establece
FirstReturnedRecorden , el primer resultado devuelto se coloca en .DataRowSi hay parámetros de salida, se colocan en .DataRow
Se genera el evento OnRowUpdated.
Se llama a AcceptChanges.
Cada comando asociado a DbDataAdapter normalmente tiene una colección de parámetros asociada. Los parámetros se asignan a la fila actual a través de las SourceColumn propiedades y SourceVersion de la clase de Parameter un proveedor de datos de .NET Framework.
SourceColumn hace referencia a una DataTable columna que hace DbDataAdapter referencia a para obtener valores de parámetro para la fila actual.
SourceColumn hace referencia al nombre de columna no asignado antes de que se hayan aplicado asignaciones de tabla. Si SourceColumn hace referencia a una columna inexistente, la acción realizada depende de uno de los valores siguientes MissingMappingAction .
| Valor de enumeración | Acción realizada |
|---|---|
MissingMappingAction.Passthrough |
Use los nombres de columna de origen y los nombres de tabla en DataSet si no hay ninguna asignación presente. |
MissingMappingAction.Ignore |
Se genera un SystemException . Cuando las asignaciones se establecen explícitamente, una asignación que falta para un parámetro de entrada suele ser el resultado de un error. |
MissingMappingAction.Error |
Se genera un SystemException . |
La SourceColumn propiedad también se usa para asignar el valor de los parámetros output o input/output a .DataSet Se genera una excepción si hace referencia a una columna inexistente.
La SourceVersion propiedad de la clase del Parameter proveedor de datos de .NET Framework determina si se debe usar la versión original, actual o propuesta del valor de columna. Esta funcionalidad se suele usar para incluir valores originales en la cláusula WHERE de una instrucción UPDATE para comprobar si hay infracciones de simultaneidad optimista.
Nota:
Si se produce un error al actualizar una fila, se produce una excepción y se interrumpe la ejecución de la actualización. Para continuar con la operación de actualización sin generar excepciones cuando se encuentra un error, establezca la ContinueUpdateOnError propiedad true en antes de llamar a Update. También puede responder a errores por fila dentro del RowUpdated evento de un DataAdapter. Para continuar con la operación de actualización sin generar una excepción dentro del RowUpdated evento, establezca la Status propiedad de en ContinueRowUpdatedEventArgs .
Consulte también
Se aplica a
Update(DataRow[])
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
- Source:
- DbDataAdapter.cs
Actualiza los valores de la base de datos ejecutando las instrucciones INSERT, UPDATE o DELETE correspondientes para cada fila insertada, actualizada o eliminada de la matriz especificada en DataSet.
public:
int Update(cli::array <System::Data::DataRow ^> ^ dataRows);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")]
public int Update(System.Data.DataRow[] dataRows);
public int Update(System.Data.DataRow[] dataRows);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("IDataReader's (built from adapter commands) schema table types cannot be statically analyzed.")>]
override this.Update : System.Data.DataRow[] -> int
override this.Update : System.Data.DataRow[] -> int
Public Function Update (dataRows As DataRow()) As Integer
Parámetros
Devoluciones
Número de filas actualizadas correctamente desde DataSet.
- Atributos
Excepciones
No DataSet es válido.
La tabla de origen no es válida.
No DataRow existe para actualizar.
O bien
No DataTable existe para actualizar.
O bien
No DataSet existe para usarlo como origen.
Un intento de ejecutar una instrucción INSERT, UPDATE o DELETE dio lugar a cero registros afectados.
Ejemplos
En el ejemplo siguiente se usa la clase derivada , OleDbDataAdapter, para actualizar el origen de datos.
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
Comentarios
Cuando una aplicación llama al Update método , DbDataAdapter examina la RowState propiedad y ejecuta las instrucciones INSERT, UPDATE o DELETE necesarias de forma iterativa para cada fila, en función del orden de los índices configurados en DataSet. Por ejemplo, Update podría ejecutar una instrucción DELETE, seguida de una instrucción INSERT y, a continuación, otra instrucción DELETE, debido al orden de las filas de DataTable.
Debe tenerse en cuenta que estas instrucciones no se realizan como un proceso por lotes; cada fila se actualiza individualmente. Una aplicación puede llamar al GetChanges método en situaciones en las que debe controlar la secuencia de tipos de instrucción (por ejemplo, INSERT antes de UPDAT). Para obtener más información, consulte Actualización de orígenes de datos con DataAdapters.
Si no se han especificado instrucciones INSERT, UPDATE o DELETE, el Update método genera una excepción. Sin embargo, puede crear un SqlCommandBuilder objeto o OleDbCommandBuilder para generar automáticamente instrucciones SQL para actualizaciones de tabla única si establece la SelectCommand propiedad de un proveedor de datos de .NET Framework. A continuación, el CommandBuilder genera cualquier instrucción SQL adicional que no establezca. Esta lógica de generación requiere que la información de columna de clave esté presente en .DataSet Para obtener más información, vea Generar comandos con CommandBuilders.
El Update método recupera las filas de la tabla enumeradas en la primera asignación antes de realizar una actualización. A Update continuación, actualiza la fila mediante el valor de la UpdatedRowSource propiedad . Se omiten las filas adicionales devueltas.
Una vez cargados los datos en DataSet, se genera el OnRowUpdated evento , lo que permite al usuario inspeccionar la fila reconciliada DataSet y los parámetros de salida devueltos por el comando . Una vez que una fila se actualiza correctamente, se aceptan los cambios en esa fila.
Cuando se usa Update, el orden de ejecución es el siguiente:
Los valores de DataRow se mueven a los valores de parámetro.
Se genera el evento OnRowUpdating.
El comando se ejecuta.
Si el comando se establece
FirstReturnedRecorden , el primer resultado devuelto se coloca en .DataRowSi hay parámetros de salida, se colocan en .DataRow
Se genera el evento OnRowUpdated.
Se llama a AcceptChanges.
Cada comando asociado a DbDataAdapter normalmente tiene una colección de parámetros asociada. Los parámetros se asignan a la fila actual a través de las SourceColumn propiedades y SourceVersion de la clase de Parameter un proveedor de datos de .NET Framework.
SourceColumn hace referencia a una DataTable columna que hace DbDataAdapter referencia a para obtener valores de parámetro para la fila actual.
SourceColumn hace referencia al nombre de columna no asignado antes de que se hayan aplicado asignaciones de tabla. Si SourceColumn hace referencia a una columna inexistente, la acción realizada depende de uno de los valores siguientes MissingMappingAction .
| Valor de enumeración | Acción realizada |
|---|---|
MissingMappingAction.Passthrough |
Use los nombres de columna de origen y los nombres de tabla en DataSet si no hay ninguna asignación presente. |
MissingMappingAction.Ignore |
Se genera un SystemException . Cuando las asignaciones se establecen explícitamente, una asignación que falta para un parámetro de entrada suele ser el resultado de un error. |
MissingMappingAction.Error |
Se genera un SystemException . |
La SourceColumn propiedad también se usa para asignar el valor de los parámetros output o input/output a .DataSet Se genera una excepción si hace referencia a una columna inexistente.
La SourceVersion propiedad de la clase del Parameter proveedor de datos de .NET Framework determina si se debe usar la versión original, actual o propuesta del valor de columna. Esta funcionalidad se suele usar para incluir valores originales en la cláusula WHERE de una instrucción UPDATE para comprobar si hay infracciones de simultaneidad optimista.
Nota:
Si se produce un error al actualizar una fila, se produce una excepción y se interrumpe la ejecución de la actualización. Para continuar con la operación de actualización sin generar excepciones cuando se encuentra un error, establezca la ContinueUpdateOnError propiedad true en antes de llamar a Update. También puede responder a errores por fila dentro del RowUpdated evento de un DataAdapter. Para continuar con la operación de actualización sin generar una excepción dentro del RowUpdated evento, establezca la Status propiedad de en ContinueRowUpdatedEventArgs .