DbDataAdapter.Update Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Werkt de waarden in de database bij door de respectieve INSERT-, UPDATE- of DELETE-instructies uit te voeren voor elke ingevoegde, bijgewerkte of verwijderde rij in de DataSet.
Overloads
| Name | Description |
|---|---|
| Update(DataSet, String) |
Werkt de waarden in de database bij door de respectieve INSERT-, UPDATE- of DELETE-instructies uit te voeren voor elke ingevoegde, bijgewerkte of verwijderde rij in de DataSet opgegeven DataTable naam. |
| Update(DataRow[], DataTableMapping) |
Hiermee worden de waarden in de database bijgewerkt door de respectieve INSERT-, UPDATE- of DELETE-instructies uit te voeren voor elke ingevoegde, bijgewerkte of verwijderde rij in de opgegeven matrix met DataRow objecten. |
| Update(DataTable) |
Hiermee worden de waarden in de database bijgewerkt door de respectieve INSERT-, UPDATE- of DELETE-instructies uit te voeren voor elke ingevoegde, bijgewerkte of verwijderde rij in de opgegeven DataTable. |
| Update(DataSet) |
Hiermee worden de waarden in de database bijgewerkt door de respectieve INSERT-, UPDATE- of DELETE-instructies uit te voeren voor elke ingevoegde, bijgewerkte of verwijderde rij in de opgegeven DataSet. |
| Update(DataRow[]) |
Werkt de waarden in de database bij door de respectieve INSERT-, UPDATE- of DELETE-instructies uit te voeren voor elke ingevoegde, bijgewerkte of verwijderde rij in de opgegeven matrix in de DataSetopgegeven matrix. |
Update(DataSet, String)
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
Parameters
- srcTable
- String
De naam van de brontabel die moet worden gebruikt voor tabeltoewijzing.
Retouren
Het aantal rijen dat is bijgewerkt vanuit de DataSet.
Uitzonderingen
Het DataSet is ongeldig.
De brontabel is ongeldig.
Bij een poging om een INSERT-, UPDATE- of DELETE-instructie uit te voeren, zijn er geen records betrokken.
Voorbeelden
In het volgende voorbeeld wordt de afgeleide klasse OleDbDataAdaptergebruikt om de gegevensbron bij te werken.
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
Opmerkingen
Wanneer een toepassing de Update methode aanroeptRowState, onderzoekt de DbDataAdapter eigenschap en voert de vereiste INSERT-, UPDATE- of DELETE-instructies iteratief uit voor elke rij, op basis van de volgorde van de indexen die in de DataSetindexen zijn geconfigureerd. U kunt bijvoorbeeld Update een DELETE-instructie uitvoeren, gevolgd door een INSERT-instructie en vervolgens een andere DELETE-instructie, vanwege de volgorde van de rijen in de DataTable.
Er moet worden opgemerkt dat deze instructies niet worden uitgevoerd als een batchproces; elke rij wordt afzonderlijk bijgewerkt. Een toepassing kan de GetChanges methode aanroepen in situaties waarin u de reeks instructietypen moet beheren (bijvoorbeeld INSERT vóór UPDATE). Zie Gegevensbronnen bijwerken met DataAdapters voor meer informatie.
Als INSERT-, UPDATE- of DELETE-instructies niet zijn opgegeven, genereert de Update methode een uitzondering. U kunt echter een SqlCommandBuilder- of OleDbCommandBuilder-object maken om automatisch SQL-instructies te genereren voor updates met één tabel als u de eigenschap SelectCommand van een .NET Framework-gegevensprovider instelt. Vervolgens worden eventuele aanvullende SQL-instructies die u niet instelt, gegenereerd door CommandBuilder. Deze generatielogica vereist dat belangrijke kolomgegevens aanwezig zijn in de DataSet. Zie Opdrachten genereren met CommandBuilders voor meer informatie.
De Update methode ondersteunt scenario's waarin het meerdere DataTable objecten bevat waarvan de DataSet namen alleen per geval verschillen. Wanneer meerdere tabellen met dezelfde naam, maar een ander geval, bestaan in een DataSet, Update voert u een hoofdlettergevoelige vergelijking uit om de bijbehorende tabel te vinden en genereert u een uitzondering als er geen exacte overeenkomst bestaat. De volgende C#-code illustreert dit gedrag.
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.
Als Update wordt aangeroepen en de naam slechts één DataTable bevat waarvan de DataSet naam alleen per geval verschilt, wordt dat DataTable bijgewerkt. In dit scenario is de vergelijking niet hoofdlettergevoelig. De volgende C#-code illustreert dit gedrag.
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.
Met Update de methode worden rijen opgehaald uit de tabel die wordt vermeld in de eerste toewijzing voordat een update wordt uitgevoerd. De Update rij wordt vervolgens vernieuwd met behulp van de waarde van de UpdatedRowSource eigenschap. Eventuele extra rijen die worden geretourneerd, worden genegeerd.
Nadat alle gegevens weer in de DataSetgebeurtenis zijn geladen, wordt de OnRowUpdated gebeurtenis gegenereerd, zodat de gebruiker de afstemmende DataSet rij en eventuele uitvoerparameters die door de opdracht worden geretourneerd, kan inspecteren. Nadat een rij is bijgewerkt, worden de wijzigingen in die rij geaccepteerd.
Wanneer u deze gebruikt Update, is de uitvoeringsvolgorde als volgt:
De waarden in de waarden DataRow worden verplaatst naar de parameterwaarden.
De OnRowUpdating gebeurtenis wordt gegenereerd.
De opdracht wordt uitgevoerd.
Als de opdracht is ingesteld op
FirstReturnedRecord, wordt het eerste geretourneerde resultaat in de DataRow.Als er uitvoerparameters zijn, worden ze in de DataRow.
De OnRowUpdated gebeurtenis wordt gegenereerd.
AcceptChanges wordt aangeroepen.
Aan elke opdracht die aan de DbDataAdapter opdracht is gekoppeld, is er meestal een verzameling parameters aan gekoppeld. Parameters worden toegewezen aan de huidige rij via de eigenschappen SourceColumn en SourceVersion van de Parameter-klasse van een .NET Framework-gegevensprovider.
SourceColumn verwijst naar een DataTable kolom waarnaar wordt DbDataAdapter verwezen om parameterwaarden voor de huidige rij te verkrijgen.
SourceColumn verwijst naar de naam van de niet-toegewezen kolom voordat tabeltoewijzingen zijn toegepast. Als SourceColumn deze verwijst naar een niet-bestaande kolom, is de uitgevoerde actie afhankelijk van een van de volgende MissingMappingAction waarden.
| Opsommingswaarde | Actie ondernomen |
|---|---|
MissingMappingAction.Passthrough |
Gebruik de bronkolomnamen en tabelnamen in de DataSet lijst als er geen toewijzing aanwezig is. |
MissingMappingAction.Ignore |
Er wordt een SystemException gegenereerd. Wanneer de toewijzingen expliciet zijn ingesteld, is een ontbrekende toewijzing voor een invoerparameter meestal het resultaat van een fout. |
MissingMappingAction.Error |
Er wordt een SystemException gegenereerd. |
De SourceColumn eigenschap wordt ook gebruikt om de waarde voor uitvoer- of invoer-/uitvoerparameters weer toe te wijzen aan de DataSet. Er wordt een uitzondering gegenereerd als deze verwijst naar een niet-bestaande kolom.
De eigenschap SourceVersion van de Parameter-klasse van een .NET Framework-gegevensprovider bepaalt of de oorspronkelijke, huidige of voorgestelde versie van de kolomwaarde moet worden gebruikt. Deze mogelijkheid wordt vaak gebruikt om oorspronkelijke waarden op te nemen in de WHERE-component van een UPDATE-instructie om te controleren op optimistische gelijktijdigheidsschendingen.
Notitie
Als er een fout optreedt tijdens het bijwerken van een rij, wordt er een uitzondering gegenereerd en wordt de uitvoering van de update stopgezet. Als u de updatebewerking wilt voortzetten zonder uitzonderingen te genereren wanneer er een fout optreedt, stelt u de ContinueUpdateOnError eigenschap true in op voordat u aanroept Update. U kunt ook reageren op fouten per rij in de RowUpdated gebeurtenis van een DataAdapter. Als u de updatebewerking wilt voortzetten zonder een uitzondering binnen de RowUpdated gebeurtenis te genereren, stelt u de Status eigenschap van de RowUpdatedEventArgs bewerking in op Continue.
Zie ook
Van toepassing op
Update(DataRow[], DataTableMapping)
Hiermee worden de waarden in de database bijgewerkt door de respectieve INSERT-, UPDATE- of DELETE-instructies uit te voeren voor elke ingevoegde, bijgewerkte of verwijderde rij in de opgegeven matrix met DataRow objecten.
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
Parameters
- dataRows
- DataRow[]
Een matrix met DataRow objecten die worden gebruikt om de gegevensbron bij te werken.
- tableMapping
- DataTableMapping
De TableMappings verzameling die moet worden gebruikt.
Retouren
Het aantal rijen dat is bijgewerkt vanuit de matrix met DataRow objecten.
Uitzonderingen
Het DataSet is ongeldig.
De brontabel is ongeldig.
Er bestaat geen DataRow update.
– of –
Er bestaat geen DataTable update.
– of –
Er bestaat geen DataSet gebruik als bron.
Bij een poging om een INSERT-, UPDATE- of DELETE-instructie uit te voeren, zijn er geen records betrokken.
Opmerkingen
Wanneer een toepassing de Update methode aanroeptRowState, onderzoekt de DbDataAdapter eigenschap en voert de vereiste INSERT-, UPDATE- of DELETE-instructies iteratief uit voor elke rij, op basis van de volgorde van de indexen die in de DataSetindexen zijn geconfigureerd. U kunt bijvoorbeeld Update een DELETE-instructie uitvoeren, gevolgd door een INSERT-instructie en vervolgens een andere DELETE-instructie, vanwege de volgorde van de rijen in de DataTable.
Er moet worden opgemerkt dat deze instructies niet worden uitgevoerd als een batchproces; elke rij wordt afzonderlijk bijgewerkt. Een toepassing kan de GetChanges methode aanroepen in situaties waarin u de reeks instructietypen moet beheren (bijvoorbeeld INSERT's vóór UPDATEs). Zie Gegevensbronnen bijwerken met DataAdapters voor meer informatie.
Als INSERT-, UPDATE- of DELETE-instructies niet zijn opgegeven, genereert de Update methode een uitzondering. U kunt echter een SqlCommandBuilder- of OleDbCommandBuilder-object maken om automatisch SQL-instructies te genereren voor updates met één tabel als u de eigenschap SelectCommand van een .NET Framework-gegevensprovider instelt. Vervolgens worden eventuele aanvullende SQL-instructies die u niet instelt, gegenereerd door CommandBuilder. Deze generatielogica vereist dat belangrijke kolomgegevens aanwezig zijn in de DataSet. Zie Opdrachten genereren met CommandBuilders voor meer informatie.
Met Update de methode worden rijen opgehaald uit de tabel die wordt vermeld in de eerste toewijzing voordat een update wordt uitgevoerd. De Update rij wordt vervolgens vernieuwd met behulp van de waarde van de UpdatedRowSource eigenschap. Eventuele extra rijen die worden geretourneerd, worden genegeerd.
Nadat alle gegevens weer in de DataSetgebeurtenis zijn geladen, wordt de OnRowUpdated gebeurtenis gegenereerd, zodat de gebruiker de afstemmende DataSet rij en eventuele uitvoerparameters die door de opdracht worden geretourneerd, kan inspecteren. Nadat een rij is bijgewerkt, worden de wijzigingen in die rij geaccepteerd.
Wanneer u deze gebruikt Update, is de uitvoeringsvolgorde als volgt:
De waarden in de waarden DataRow worden verplaatst naar de parameterwaarden.
De OnRowUpdating gebeurtenis wordt gegenereerd.
De opdracht wordt uitgevoerd.
Als de opdracht is ingesteld op
FirstReturnedRecord, wordt het eerste geretourneerde resultaat in de DataRow.Als er uitvoerparameters zijn, worden ze in de DataRow.
De OnRowUpdated gebeurtenis wordt gegenereerd.
AcceptChanges wordt aangeroepen.
Aan elke opdracht die aan de DbDataAdapter opdracht is gekoppeld, is er meestal een verzameling parameters aan gekoppeld. Parameters worden toegewezen aan de huidige rij via de eigenschappen SourceColumn en SourceVersion van de Parameter-klasse van een .NET Framework-gegevensprovider.
SourceColumn verwijst naar een DataTable kolom waarnaar wordt DbDataAdapter verwezen om parameterwaarden voor de huidige rij te verkrijgen.
SourceColumn verwijst naar de naam van de niet-toegewezen kolom voordat tabeltoewijzingen zijn toegepast. Als SourceColumn deze verwijst naar een niet-bestaande kolom, is de uitgevoerde actie afhankelijk van een van de volgende MissingMappingAction waarden.
| Opsommingswaarde | Actie ondernomen |
|---|---|
MissingMappingAction.Passthrough |
Gebruik de bronkolomnamen en tabelnamen in de DataSet lijst als er geen toewijzing aanwezig is. |
MissingMappingAction.Ignore |
Er wordt een SystemException gegenereerd. Wanneer de toewijzingen expliciet zijn ingesteld, is een ontbrekende toewijzing voor een invoerparameter meestal het resultaat van een fout. |
MissingMappingAction.Error |
Er wordt een SystemException gegenereerd. |
De SourceColumn eigenschap wordt ook gebruikt om de waarde voor uitvoer- of invoer-/uitvoerparameters weer toe te wijzen aan de DataSet. Er wordt een uitzondering gegenereerd als deze verwijst naar een niet-bestaande kolom.
De eigenschap SourceVersion van de Parameter-klasse van een .NET Framework-gegevensprovider bepaalt of de oorspronkelijke, huidige of voorgestelde versie van de kolomwaarde moet worden gebruikt. Deze mogelijkheid wordt vaak gebruikt om oorspronkelijke waarden op te nemen in de WHERE-component van een UPDATE-instructie om te controleren op optimistische gelijktijdigheidsschendingen.
Notitie
Als er een fout optreedt tijdens het bijwerken van een rij, wordt er een uitzondering gegenereerd en wordt de uitvoering van de update stopgezet. Als u de updatebewerking wilt voortzetten zonder uitzonderingen te genereren wanneer er een fout optreedt, stelt u de ContinueUpdateOnError eigenschap true in op voordat u aanroept Update. U kunt ook reageren op fouten per rij in de RowUpdated gebeurtenis van een DataAdapter. Als u de updatebewerking wilt voortzetten zonder een uitzondering binnen de RowUpdated gebeurtenis te genereren, stelt u de Status eigenschap van de RowUpdatedEventArgs bewerking in op Continue.
Zie ook
Van toepassing op
Update(DataTable)
Hiermee worden de waarden in de database bijgewerkt door de respectieve INSERT-, UPDATE- of DELETE-instructies uit te voeren voor elke ingevoegde, bijgewerkte of verwijderde rij in de opgegeven 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
Parameters
- dataTable
- DataTable
De DataTable gegevensbron die wordt gebruikt voor het bijwerken van de gegevensbron.
Retouren
Het aantal rijen dat is bijgewerkt vanuit de DataTable.
Uitzonderingen
Het DataSet is ongeldig.
De brontabel is ongeldig.
Er bestaat geen DataRow update.
– of –
Er bestaat geen DataTable update.
– of –
Er bestaat geen DataSet gebruik als bron.
Bij een poging om een INSERT-, UPDATE- of DELETE-instructie uit te voeren, zijn er geen records betrokken.
Voorbeelden
In het volgende voorbeeld wordt de afgeleide klasse OleDbDataAdaptergebruikt om de gegevensbron bij te werken.
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
Opmerkingen
Wanneer een toepassing de Update methode aanroeptRowState, onderzoekt de DbDataAdapter eigenschap en voert de vereiste INSERT-, UPDATE- of DELETE-instructies iteratief uit voor elke rij, op basis van de volgorde van de indexen die in de DataSetindexen zijn geconfigureerd. U kunt bijvoorbeeld Update een DELETE-instructie uitvoeren, gevolgd door een INSERT-instructie en vervolgens een andere DELETE-instructie, vanwege de volgorde van de rijen in de DataTable.
Er moet worden opgemerkt dat deze instructies niet worden uitgevoerd als een batchproces; elke rij wordt afzonderlijk bijgewerkt. Een toepassing kan de GetChanges methode aanroepen in situaties waarin u de reeks instructietypen moet beheren (bijvoorbeeld INSERT's vóór UPDATEs). Zie Gegevensbronnen bijwerken met DataAdapters voor meer informatie.
Als INSERT-, UPDATE- of DELETE-instructies niet zijn opgegeven, genereert de Update methode een uitzondering. U kunt echter een SqlCommandBuilder- of OleDbCommandBuilder-object maken om automatisch SQL-instructies te genereren voor updates met één tabel als u de eigenschap SelectCommand van een .NET Framework-gegevensprovider instelt. Vervolgens worden eventuele aanvullende SQL-instructies die u niet instelt, gegenereerd door CommandBuilder. Deze generatielogica vereist dat belangrijke kolomgegevens aanwezig zijn in de DataSet. Zie Opdrachten genereren met CommandBuilders voor meer informatie.
Met Update de methode worden rijen opgehaald uit de tabel die wordt vermeld in de eerste toewijzing voordat een update wordt uitgevoerd. De Update rij wordt vervolgens vernieuwd met behulp van de waarde van de UpdatedRowSource eigenschap. Eventuele extra rijen die worden geretourneerd, worden genegeerd.
Nadat alle gegevens weer in de DataSetgebeurtenis zijn geladen, wordt de OnRowUpdated gebeurtenis gegenereerd, zodat de gebruiker de afstemmende DataSet rij en eventuele uitvoerparameters die door de opdracht worden geretourneerd, kan inspecteren. Nadat een rij is bijgewerkt, worden de wijzigingen in die rij geaccepteerd.
Wanneer u deze gebruikt Update, is de uitvoeringsvolgorde als volgt:
De waarden in de waarden DataRow worden verplaatst naar de parameterwaarden.
De OnRowUpdating gebeurtenis wordt gegenereerd.
De opdracht wordt uitgevoerd.
Als de opdracht is ingesteld op
FirstReturnedRecord, wordt het eerste geretourneerde resultaat in de DataRow.Als er uitvoerparameters zijn, worden ze in de DataRow.
De OnRowUpdated gebeurtenis wordt gegenereerd.
AcceptChanges wordt aangeroepen.
Aan elke opdracht die aan de DbDataAdapter opdracht is gekoppeld, is er meestal een verzameling parameters aan gekoppeld. Parameters worden toegewezen aan de huidige rij via de eigenschappen SourceColumn en SourceVersion van de Parameter-klasse van een .NET Framework-gegevensprovider.
SourceColumn verwijst naar een DataTable kolom waarnaar wordt DbDataAdapter verwezen om parameterwaarden voor de huidige rij te verkrijgen.
SourceColumn verwijst naar de naam van de niet-toegewezen kolom voordat tabeltoewijzingen zijn toegepast. Als SourceColumn deze verwijst naar een niet-bestaande kolom, is de uitgevoerde actie afhankelijk van een van de volgende MissingMappingAction waarden.
| Opsommingswaarde | Actie ondernomen |
|---|---|
MissingMappingAction.Passthrough |
Gebruik de bronkolomnamen en tabelnamen in de DataSet lijst als er geen toewijzing aanwezig is. |
MissingMappingAction.Ignore |
Er wordt een SystemException gegenereerd. Wanneer de toewijzingen expliciet zijn ingesteld, is een ontbrekende toewijzing voor een invoerparameter meestal het resultaat van een fout. |
MissingMappingAction.Error |
Er wordt een SystemException gegenereerd. |
De SourceColumn eigenschap wordt ook gebruikt om de waarde voor uitvoer- of invoer-/uitvoerparameters weer toe te wijzen aan de DataSet. Er wordt een uitzondering gegenereerd als deze verwijst naar een niet-bestaande kolom.
De eigenschap SourceVersion van de Parameter-klasse van een .NET Framework-gegevensprovider bepaalt of de oorspronkelijke, huidige of voorgestelde versie van de kolomwaarde moet worden gebruikt. Deze mogelijkheid wordt vaak gebruikt om oorspronkelijke waarden op te nemen in de WHERE-component van een UPDATE-instructie om te controleren op optimistische gelijktijdigheidsschendingen.
Notitie
Als er een fout optreedt tijdens het bijwerken van een rij, wordt er een uitzondering gegenereerd en wordt de uitvoering van de update stopgezet. Als u de updatebewerking wilt voortzetten zonder uitzonderingen te genereren wanneer er een fout optreedt, stelt u de ContinueUpdateOnError eigenschap true in op voordat u aanroept Update. U kunt ook reageren op fouten per rij in de RowUpdated gebeurtenis van een DataAdapter. Als u de updatebewerking wilt voortzetten zonder een uitzondering binnen de RowUpdated gebeurtenis te genereren, stelt u de Status eigenschap van de RowUpdatedEventArgs bewerking in op Continue.
Zie ook
Van toepassing op
Update(DataSet)
Hiermee worden de waarden in de database bijgewerkt door de respectieve INSERT-, UPDATE- of DELETE-instructies uit te voeren voor elke ingevoegde, bijgewerkte of verwijderde rij in de opgegeven 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
Parameters
Retouren
Het aantal rijen dat is bijgewerkt vanuit de DataSet.
Implementeringen
Uitzonderingen
De brontabel is ongeldig.
Bij een poging om een INSERT-, UPDATE- of DELETE-instructie uit te voeren, zijn er geen records betrokken.
Voorbeelden
In het volgende voorbeeld wordt de afgeleide klasse OleDbDataAdaptergebruikt om de gegevensbron bij te werken.
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
Opmerkingen
Wanneer een toepassing de Update methode aanroeptRowState, onderzoekt de DbDataAdapter eigenschap en voert de vereiste INSERT-, UPDATE- of DELETE-instructies iteratief uit voor elke rij, op basis van de volgorde van de indexen die in de DataSetindexen zijn geconfigureerd. U kunt bijvoorbeeld Update een DELETE-instructie uitvoeren, gevolgd door een INSERT-instructie en vervolgens een andere DELETE-instructie, vanwege de volgorde van de rijen in de DataTable.
Er moet worden opgemerkt dat deze instructies niet worden uitgevoerd als een batchproces; elke rij wordt afzonderlijk bijgewerkt. Een toepassing kan de GetChanges methode aanroepen in situaties waarin u de reeks instructietypen moet beheren (bijvoorbeeld INSERT's vóór UPDATEs). Zie Gegevensbronnen bijwerken met DataAdapters voor meer informatie.
Als INSERT-, UPDATE- of DELETE-instructies niet zijn opgegeven, genereert de Update methode een uitzondering. U kunt echter een SqlCommandBuilder- of OleDbCommandBuilder-object maken om automatisch SQL-instructies te genereren voor updates met één tabel als u de eigenschap SelectCommand van een .NET Framework-gegevensprovider instelt. Vervolgens worden eventuele aanvullende SQL-instructies die u niet instelt, gegenereerd door CommandBuilder. Deze generatielogica vereist dat belangrijke kolomgegevens aanwezig zijn in de DataSet. Zie Opdrachten genereren met CommandBuilders voor meer informatie.
Met Update de methode worden rijen opgehaald uit de tabel die wordt vermeld in de eerste toewijzing voordat een update wordt uitgevoerd. De Update rij wordt vervolgens vernieuwd met behulp van de waarde van de UpdatedRowSource eigenschap. Eventuele extra rijen die worden geretourneerd, worden genegeerd.
Nadat alle gegevens weer in de DataSetgebeurtenis zijn geladen, wordt de OnRowUpdated gebeurtenis gegenereerd, zodat de gebruiker de afstemmende DataSet rij en eventuele uitvoerparameters die door de opdracht worden geretourneerd, kan inspecteren. Nadat een rij is bijgewerkt, worden de wijzigingen in die rij geaccepteerd.
Wanneer u deze gebruikt Update, is de uitvoeringsvolgorde als volgt:
De waarden in de waarden DataRow worden verplaatst naar de parameterwaarden.
De OnRowUpdating gebeurtenis wordt gegenereerd.
De opdracht wordt uitgevoerd.
Als de opdracht is ingesteld op
FirstReturnedRecord, wordt het eerste geretourneerde resultaat in de DataRow.Als er uitvoerparameters zijn, worden ze in de DataRow.
De OnRowUpdated gebeurtenis wordt gegenereerd.
AcceptChanges wordt aangeroepen.
Aan elke opdracht die aan de DbDataAdapter opdracht is gekoppeld, is er meestal een verzameling parameters aan gekoppeld. Parameters worden toegewezen aan de huidige rij via de eigenschappen SourceColumn en SourceVersion van de Parameter-klasse van een .NET Framework-gegevensprovider.
SourceColumn verwijst naar een DataTable kolom waarnaar wordt DbDataAdapter verwezen om parameterwaarden voor de huidige rij te verkrijgen.
SourceColumn verwijst naar de naam van de niet-toegewezen kolom voordat tabeltoewijzingen zijn toegepast. Als SourceColumn deze verwijst naar een niet-bestaande kolom, is de uitgevoerde actie afhankelijk van een van de volgende MissingMappingAction waarden.
| Opsommingswaarde | Actie ondernomen |
|---|---|
MissingMappingAction.Passthrough |
Gebruik de bronkolomnamen en tabelnamen in de DataSet lijst als er geen toewijzing aanwezig is. |
MissingMappingAction.Ignore |
Er wordt een SystemException gegenereerd. Wanneer de toewijzingen expliciet zijn ingesteld, is een ontbrekende toewijzing voor een invoerparameter meestal het resultaat van een fout. |
MissingMappingAction.Error |
Er wordt een SystemException gegenereerd. |
De SourceColumn eigenschap wordt ook gebruikt om de waarde voor uitvoer- of invoer-/uitvoerparameters weer toe te wijzen aan de DataSet. Er wordt een uitzondering gegenereerd als deze verwijst naar een niet-bestaande kolom.
De eigenschap SourceVersion van de Parameter-klasse van een .NET Framework-gegevensprovider bepaalt of de oorspronkelijke, huidige of voorgestelde versie van de kolomwaarde moet worden gebruikt. Deze mogelijkheid wordt vaak gebruikt om oorspronkelijke waarden op te nemen in de WHERE-component van een UPDATE-instructie om te controleren op optimistische gelijktijdigheidsschendingen.
Notitie
Als er een fout optreedt tijdens het bijwerken van een rij, wordt er een uitzondering gegenereerd en wordt de uitvoering van de update stopgezet. Als u de updatebewerking wilt voortzetten zonder uitzonderingen te genereren wanneer er een fout optreedt, stelt u de ContinueUpdateOnError eigenschap true in op voordat u aanroept Update. U kunt ook reageren op fouten per rij in de RowUpdated gebeurtenis van een DataAdapter. Als u de updatebewerking wilt voortzetten zonder een uitzondering binnen de RowUpdated gebeurtenis te genereren, stelt u de Status eigenschap van de RowUpdatedEventArgs bewerking in op Continue.
Zie ook
Van toepassing op
Update(DataRow[])
Werkt de waarden in de database bij door de respectieve INSERT-, UPDATE- of DELETE-instructies uit te voeren voor elke ingevoegde, bijgewerkte of verwijderde rij in de opgegeven matrix in de DataSetopgegeven matrix.
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
Parameters
- dataRows
- DataRow[]
Een matrix met DataRow objecten die worden gebruikt om de gegevensbron bij te werken.
Retouren
Het aantal rijen dat is bijgewerkt vanuit de DataSet.
Uitzonderingen
Het DataSet is ongeldig.
De brontabel is ongeldig.
Er bestaat geen DataRow update.
– of –
Er bestaat geen DataTable update.
– of –
Er bestaat geen DataSet gebruik als bron.
Bij een poging om een INSERT-, UPDATE- of DELETE-instructie uit te voeren, zijn er geen records betrokken.
Voorbeelden
In het volgende voorbeeld wordt de afgeleide klasse OleDbDataAdaptergebruikt om de gegevensbron bij te werken.
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
Opmerkingen
Wanneer een toepassing de Update methode aanroeptRowState, onderzoekt de DbDataAdapter eigenschap en voert de vereiste INSERT-, UPDATE- of DELETE-instructies iteratief uit voor elke rij, op basis van de volgorde van de indexen die in de DataSetindexen zijn geconfigureerd. U kunt bijvoorbeeld Update een DELETE-instructie uitvoeren, gevolgd door een INSERT-instructie en vervolgens een andere DELETE-instructie, vanwege de volgorde van de rijen in de DataTable.
Er moet worden opgemerkt dat deze instructies niet worden uitgevoerd als een batchproces; elke rij wordt afzonderlijk bijgewerkt. Een toepassing kan de GetChanges methode aanroepen in situaties waarin u de reeks instructietypen moet beheren (bijvoorbeeld INSERT's vóór UPDATEs). Zie Gegevensbronnen bijwerken met DataAdapters voor meer informatie.
Als INSERT-, UPDATE- of DELETE-instructies niet zijn opgegeven, genereert de Update methode een uitzondering. U kunt echter een SqlCommandBuilder- of OleDbCommandBuilder-object maken om automatisch SQL-instructies te genereren voor updates met één tabel als u de eigenschap SelectCommand van een .NET Framework-gegevensprovider instelt. Vervolgens worden eventuele aanvullende SQL-instructies die u niet instelt, gegenereerd door CommandBuilder. Deze generatielogica vereist dat belangrijke kolomgegevens aanwezig zijn in de DataSet. Zie Opdrachten genereren met CommandBuilders voor meer informatie.
Met Update de methode worden rijen opgehaald uit de tabel die wordt vermeld in de eerste toewijzing voordat een update wordt uitgevoerd. De Update rij wordt vervolgens vernieuwd met behulp van de waarde van de UpdatedRowSource eigenschap. Eventuele extra rijen die worden geretourneerd, worden genegeerd.
Nadat alle gegevens weer in de DataSetgebeurtenis zijn geladen, wordt de OnRowUpdated gebeurtenis gegenereerd, zodat de gebruiker de afstemmende DataSet rij en eventuele uitvoerparameters die door de opdracht worden geretourneerd, kan inspecteren. Nadat een rij is bijgewerkt, worden de wijzigingen in die rij geaccepteerd.
Wanneer u deze gebruikt Update, is de uitvoeringsvolgorde als volgt:
De waarden in de waarden DataRow worden verplaatst naar de parameterwaarden.
De OnRowUpdating gebeurtenis wordt gegenereerd.
De opdracht wordt uitgevoerd.
Als de opdracht is ingesteld op
FirstReturnedRecord, wordt het eerste geretourneerde resultaat in de DataRow.Als er uitvoerparameters zijn, worden ze in de DataRow.
De OnRowUpdated gebeurtenis wordt gegenereerd.
AcceptChanges wordt aangeroepen.
Aan elke opdracht die aan de DbDataAdapter opdracht is gekoppeld, is er meestal een verzameling parameters aan gekoppeld. Parameters worden toegewezen aan de huidige rij via de eigenschappen SourceColumn en SourceVersion van de Parameter-klasse van een .NET Framework-gegevensprovider.
SourceColumn verwijst naar een DataTable kolom waarnaar wordt DbDataAdapter verwezen om parameterwaarden voor de huidige rij te verkrijgen.
SourceColumn verwijst naar de naam van de niet-toegewezen kolom voordat tabeltoewijzingen zijn toegepast. Als SourceColumn deze verwijst naar een niet-bestaande kolom, is de uitgevoerde actie afhankelijk van een van de volgende MissingMappingAction waarden.
| Opsommingswaarde | Actie ondernomen |
|---|---|
MissingMappingAction.Passthrough |
Gebruik de bronkolomnamen en tabelnamen in de DataSet lijst als er geen toewijzing aanwezig is. |
MissingMappingAction.Ignore |
Er wordt een SystemException gegenereerd. Wanneer de toewijzingen expliciet zijn ingesteld, is een ontbrekende toewijzing voor een invoerparameter meestal het resultaat van een fout. |
MissingMappingAction.Error |
Er wordt een SystemException gegenereerd. |
De SourceColumn eigenschap wordt ook gebruikt om de waarde voor uitvoer- of invoer-/uitvoerparameters weer toe te wijzen aan de DataSet. Er wordt een uitzondering gegenereerd als deze verwijst naar een niet-bestaande kolom.
De eigenschap SourceVersion van de Parameter-klasse van een .NET Framework-gegevensprovider bepaalt of de oorspronkelijke, huidige of voorgestelde versie van de kolomwaarde moet worden gebruikt. Deze mogelijkheid wordt vaak gebruikt om oorspronkelijke waarden op te nemen in de WHERE-component van een UPDATE-instructie om te controleren op optimistische gelijktijdigheidsschendingen.
Notitie
Als er een fout optreedt tijdens het bijwerken van een rij, wordt er een uitzondering gegenereerd en wordt de uitvoering van de update stopgezet. Als u de updatebewerking wilt voortzetten zonder uitzonderingen te genereren wanneer er een fout optreedt, stelt u de ContinueUpdateOnError eigenschap true in op voordat u aanroept Update. U kunt ook reageren op fouten per rij in de RowUpdated gebeurtenis van een DataAdapter. Als u de updatebewerking wilt voortzetten zonder een uitzondering binnen de RowUpdated gebeurtenis te genereren, stelt u de Status eigenschap van de RowUpdatedEventArgs bewerking in op Continue.