DbDataAdapter.Fill Methode

Definitie

Vult een DataSet of a DataTable.

Overloads

Name Description
Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)

Hiermee worden rijen in een opgegeven bereik in het DataSet opgegeven bereik toegevoegd of vernieuwd, zodat deze overeenkomen met de rijen in de gegevensbron met behulp van de namen van de DataSet en brontabellen, de opdrachtreeks en het gedrag van de opdracht.

Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)

Hiermee worden rijen in een opgegeven bereik toegevoegd of vernieuwd, DataSet zodat deze overeenkomen met rijen in de gegevensbron met behulp van de DataSet en DataTable namen.

Fill(DataSet, String, IDataReader, Int32, Int32)

Hiermee worden rijen in een opgegeven bereik toegevoegd of vernieuwd, DataSet zodat deze overeenkomen met rijen in de gegevensbron met behulp van de DataSet, DataTableen IDataReader namen.

Fill(DataSet, Int32, Int32, String)

Hiermee worden rijen in een opgegeven bereik toegevoegd of vernieuwd, DataSet zodat deze overeenkomen met rijen in de gegevensbron met behulp van de DataSet en DataTable namen.

Fill(Int32, Int32, DataTable[])

Hiermee worden rijen in een of meer DataTable objecten toegevoegd of vernieuwd zodat deze overeenkomen met de rijen in de gegevensbron die beginnen bij de opgegeven record en maximaal het opgegeven maximum aantal records worden opgehaald.

Fill(DataTable)

Hiermee worden rijen in een opgegeven bereik in het DataSet opgegeven bereik toegevoegd of vernieuwd, zodat deze overeenkomen met de rijen in de gegevensbron met behulp van de DataTable naam.

Fill(DataTable, IDataReader)

Voegt rijen in een DataTable rij toe of vernieuwt deze zodat deze overeenkomen met de rijen in de gegevensbron met behulp van de opgegeven DataTable namen en IDataReader namen.

Fill(DataSet, String)

Hiermee worden rijen in de DataSet rijen toegevoegd of vernieuwd die overeenkomen met de rijen in de gegevensbron met behulp van de DataSet en DataTable namen.

Fill(DataSet)

Rijen toevoegen of vernieuwen in de DataSet.

Fill(DataTable, IDbCommand, CommandBehavior)

Voegt rijen in een DataTable rij toe of vernieuwt deze zodat deze overeenkomen met de rijen in de gegevensbron met behulp van de opgegeven DataTable, IDbCommand en CommandBehavior.

Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)

Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs

Hiermee worden rijen in een opgegeven bereik in het DataSet opgegeven bereik toegevoegd of vernieuwd, zodat deze overeenkomen met de rijen in de gegevensbron met behulp van de namen van de DataSet en brontabellen, de opdrachtreeks en het gedrag van de opdracht.

protected:
 virtual int Fill(System::Data::DataSet ^ dataSet, int startRecord, int maxRecords, System::String ^ srcTable, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill(System.Data.DataSet dataSet, int startRecord, int maxRecords, string srcTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataSet * int * int * string * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataSet As DataSet, startRecord As Integer, maxRecords As Integer, srcTable As String, command As IDbCommand, behavior As CommandBehavior) As Integer

Parameters

dataSet
DataSet

Een DataSet om records en, indien nodig, schema op te vullen.

startRecord
Int32

Het recordnummer op basis van nul waarmee u wilt beginnen.

maxRecords
Int32

Het maximum aantal records dat moet worden opgehaald. Geef 0 op om alle records na de beginrecord op te halen.

srcTable
String

De naam van de brontabel die moet worden gebruikt voor tabeltoewijzing.

command
IDbCommand

De SQL SELECT-instructie die wordt gebruikt om rijen op te halen uit de gegevensbron.

behavior
CommandBehavior

Een van de CommandBehavior waarden.

Retouren

Het aantal rijen dat is toegevoegd aan of vernieuwd in de DataSet. Dit omvat geen rijen die worden beïnvloed door instructies die geen rijen retourneren.

Uitzonderingen

De brontabel is ongeldig.

De startRecord parameter is kleiner dan 0.

– of –

De maxRecords parameter is kleiner dan 0.

Opmerkingen

Een maxRecords waarde van 0 haalt alle records op die na de beginrecord zijn gevonden. Als maxRecords dit groter is dan het aantal resterende rijen, worden alleen de resterende rijen geretourneerd en wordt er geen fout weergegeven.

De Fill methode haalt rijen op uit de gegevensbron met behulp van de SELECT-instructie die is opgegeven door een gekoppelde SelectCommand eigenschap. Het verbindingsobject dat aan de SELECT-instructie is gekoppeld, moet geldig zijn, maar hoeft niet geopend te zijn. Als de verbinding wordt gesloten voordat Fill deze wordt aangeroepen, wordt deze geopend om gegevens op te halen en vervolgens gesloten. Als de verbinding is geopend voordat Fill deze wordt aangeroepen, blijft deze geopend.

Met Fill de bewerking worden de rijen vervolgens toegevoegd aan doelobjecten DataTable in het DataSetobject, waardoor de DataTable objecten worden gemaakt als ze nog niet bestaan. Bij het DataTable maken van Fill objecten worden normaal gesproken alleen metagegevens van kolomnamen gemaakt. Als de MissingSchemaAction eigenschap echter is ingesteld op AddWithKey, worden ook de juiste primaire sleutels en beperkingen gemaakt.

Als er DbDataAdapter dubbele kolommen optreden tijdens het vullen van een DataTablekolom, worden er namen gegenereerd voor de volgende kolommen, met behulp van het patroon 'columnname1', 'columnname2', 'columnname3', enzovoort. Als de binnenkomende gegevens niet-benoemde kolommen bevatten, worden ze in het DataSet patroon Kolom1, Kolom2 enzovoort geplaatst. Wanneer er meerdere resultatensets worden toegevoegd aan de DataSet resultatenset, wordt deze in een afzonderlijke tabel geplaatst. Aanvullende resultatensets worden benoemd door integrale waarden toe te voegen aan de opgegeven tabelnaam (bijvoorbeeld 'Tabel', 'Tabel1', 'Tabel2', enzovoort). Als uw app kolom- en tabelnamen gebruikt, moet u ervoor zorgen dat er geen conflicten zijn met deze naamgevingspatronen.

De Fill methode ondersteunt scenario's waarin het meerdere DataSet objecten bevat waarvan de DataTable namen alleen per geval verschillen. In dergelijke situaties Fill voert u een hoofdlettergevoelige vergelijking uit om de bijbehorende tabel te vinden en maakt u een nieuwe tabel als er geen exacte overeenkomst bestaat. De volgende C#-code illustreert dit gedrag.

DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".

Als Fill wordt aangeroepen en de naam slechts één DataSet bevat waarvan de DataTable 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.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.

U kunt de Fill methode meerdere keren op dezelfde DataTablemethode gebruiken. Als er een primaire sleutel bestaat, worden binnenkomende rijen samengevoegd met overeenkomende rijen die al bestaan. Als er geen primaire sleutel bestaat, worden binnenkomende rijen toegevoegd aan de DataTable.

Als de SelectCommand de resultaten van een OUTER JOIN retourneert, stelt de DataAdapter geen PrimaryKey-waarde in voor het resulterende DataTable. U moet expliciet de primaire sleutel definiëren om ervoor te zorgen dat dubbele rijen correct worden opgelost. Zie Primaire sleutels definiëren voor meer informatie.

Note

Bij het verwerken van batch-SQL-instructies die meerdere resultaten retourneren, haalt de implementatie van Fill en FillSchema voor een .NET Framework-gegevensprovider schemagegevens op voor alleen het eerste resultaat.

Notities voor overnemers

Deze overbelasting van de methode Fill(DataSet) is beveiligd en is ontworpen voor gebruik door een .NET Framework-gegevensprovider.

Zie ook

Van toepassing op

Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)

Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs

Hiermee worden rijen in een opgegeven bereik toegevoegd of vernieuwd, DataSet zodat deze overeenkomen met rijen in de gegevensbron met behulp van de DataSet en DataTable namen.

protected:
 virtual int Fill(cli::array <System::Data::DataTable ^> ^ dataTables, int startRecord, int maxRecords, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill(System.Data.DataTable[] dataTables, int startRecord, int maxRecords, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataTable[] * int * int * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataTables As DataTable(), startRecord As Integer, maxRecords As Integer, command As IDbCommand, behavior As CommandBehavior) As Integer

Parameters

dataTables
DataTable[]

De DataTable objecten die moeten worden ingevuld vanuit de gegevensbron.

startRecord
Int32

Het recordnummer op basis van nul waarmee u wilt beginnen.

maxRecords
Int32

Het maximum aantal records dat moet worden opgehaald. Geef 0 op om alle records na de beginrecord op te halen.

command
IDbCommand

De IDbCommand uitvoering om de DataTable objecten te vullen.

behavior
CommandBehavior

Een van de CommandBehavior waarden.

Retouren

Het aantal rijen dat is toegevoegd aan of vernieuwd in de gegevenstabellen.

Uitzonderingen

Het DataSet is ongeldig.

De brontabel is ongeldig.

– of –

De verbinding is ongeldig.

Kan de verbinding niet vinden.

De startRecord parameter is kleiner dan 0.

– of –

De maxRecords parameter is kleiner dan 0.

Opmerkingen

Een maxRecords waarde van 0 haalt alle records op die na de beginrecord zijn gevonden. Als maxRecords dit groter is dan het aantal resterende rijen, worden alleen de resterende rijen geretourneerd en wordt er geen fout weergegeven.

De Fill methode haalt de gegevens op uit de gegevensbron met behulp van een SELECT-instructie. Het IDbConnection object dat is gekoppeld aan de SELECT-instructie moet geldig zijn, maar hoeft niet geopend te zijn. Als de naam wordt gesloten voordat IDbConnection deze Fill wordt aangeroepen, wordt deze geopend om gegevens op te halen en vervolgens gesloten. Als de verbinding is geopend voordat Fill deze wordt aangeroepen, blijft deze geopend.

Als een opdracht geen rijen retourneert, worden er geen tabellen toegevoegd aan de DataSettabel, maar er wordt geen uitzondering gegenereerd.

Als het DbDataAdapter object dubbele kolommen tegenkomt tijdens het vullen van een DataTablekolom, worden er namen gegenereerd voor de volgende kolommen, met behulp van het patroon 'columnname1', 'columnname2', 'columnname3', enzovoort. Als de binnenkomende gegevens niet-benoemde kolommen bevatten, worden ze in het DataSet patroon Kolom1, Kolom2 enzovoort geplaatst.

Wanneer de opgegeven query meerdere resultaten retourneert, wordt elke resultatenset in een afzonderlijke tabel geplaatst. Aanvullende resultatensets worden benoemd door integrale waarden toe te voegen aan de opgegeven tabelnaam (bijvoorbeeld 'Tabel', 'Tabel1', 'Tabel2', enzovoort). Omdat er geen tabel wordt gemaakt voor een query die geen rijen retourneert, wordt de tabel die is gemaakt voor de selectiequery de naam Tabel als u een invoegquery wilt verwerken, omdat dit de eerste tabel is die is gemaakt. Als uw app kolom- en tabelnamen gebruikt, moet u ervoor zorgen dat er geen conflicten zijn met deze naamgevingspatronen.

De Fill methode ondersteunt scenario's waarin het meerdere DataSet objecten bevat waarvan de DataTable namen alleen per geval verschillen. In dergelijke situaties Fill voert u een hoofdlettergevoelige vergelijking uit om de bijbehorende tabel te vinden en maakt u een nieuwe tabel als er geen exacte overeenkomst bestaat. De volgende C#-code illustreert dit gedrag.

DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".

Als Fill wordt aangeroepen en de naam slechts één DataSet bevat waarvan de DataTable 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.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.

Als er een fout of uitzondering optreedt tijdens het invullen van de gegevenstabellen, blijven rijen toegevoegd vóór het optreden van de fout in de gegevenstabellen. De rest van de bewerking wordt afgebroken.

Wanneer de SELECT-instructie die wordt gebruikt om de DataTable objecten te vullen meerdere resultaten retourneert, zoals een batch-SQL-instructie, moet u rekening houden met het volgende:

  • Wanneer u meerdere resultaten van een batch-SQL-instructie verwerkt, maxRecords is dit alleen van toepassing op het eerste resultaat. Hetzelfde geldt voor rijen met hoofdstukresultaten (.NET Framework Data Provider alleen voor OLE DB). Het resultaat op het hoogste niveau wordt beperkt door maxRecords, maar alle onderliggende rijen worden toegevoegd.

  • Als een van de resultaten een fout bevat, worden alle volgende resultaten overgeslagen.

Note

Het DataSet zal niet meer bevatten dan het aantal records aangegeven door maxRecords. De volledige resultatenset die door de query wordt gegenereerd, wordt echter nog steeds geretourneerd door de server.

Notities voor overnemers

Wanneer u Fill(DataSet) overschrijft in een afgeleide klasse, moet u de methode van Fill(DataSet) de basisklasse aanroepen.

Zie ook

Van toepassing op

Fill(DataSet, String, IDataReader, Int32, Int32)

Hiermee worden rijen in een opgegeven bereik toegevoegd of vernieuwd, DataSet zodat deze overeenkomen met rijen in de gegevensbron met behulp van de DataSet, DataTableen IDataReader namen.

protected:
 virtual int Fill(System::Data::DataSet ^ dataSet, System::String ^ srcTable, System::Data::IDataReader ^ dataReader, int startRecord, int maxRecords);
protected virtual int Fill(System.Data.DataSet dataSet, string srcTable, System.Data.IDataReader dataReader, int startRecord, int maxRecords);
override this.Fill : System.Data.DataSet * string * System.Data.IDataReader * int * int -> int
Protected Overridable Function Fill (dataSet As DataSet, srcTable As String, dataReader As IDataReader, startRecord As Integer, maxRecords As Integer) As Integer

Parameters

dataSet
DataSet

Een DataSet om records en, indien nodig, schema op te vullen.

srcTable
String

De naam van de DataTable te gebruiken naam voor tabeltoewijzing.

dataReader
IDataReader

De naam van de IDataReader.

startRecord
Int32

Het recordnummer op basis van nul waarmee u wilt beginnen.

maxRecords
Int32

Het maximum aantal records dat moet worden opgehaald. Geef 0 op om alle records na de beginrecord op te halen.

Retouren

Het aantal rijen dat is toegevoegd aan of vernieuwd in de DataSet. Dit omvat geen rijen die worden beïnvloed door instructies die geen rijen retourneren.

Uitzonderingen

startRecord is kleiner dan 0.

– of –

maxRecords is kleiner dan 0.

Opmerkingen

Een maxRecords waarde van 0 haalt alle records op die na de beginrecord zijn gevonden. Als maxRecords dit groter is dan het aantal resterende rijen, worden alleen de resterende rijen geretourneerd en wordt er geen fout weergegeven.

Van toepassing op

Fill(DataSet, Int32, Int32, String)

Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs

Hiermee worden rijen in een opgegeven bereik toegevoegd of vernieuwd, DataSet zodat deze overeenkomen met rijen in de gegevensbron met behulp van de DataSet en DataTable namen.

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

Parameters

dataSet
DataSet

Een DataSet om records en, indien nodig, schema op te vullen.

startRecord
Int32

Het recordnummer op basis van nul waarmee u wilt beginnen.

maxRecords
Int32

Het maximum aantal records dat moet worden opgehaald. Geef 0 op om alle records na de beginrecord op te halen.

srcTable
String

De naam van de brontabel die moet worden gebruikt voor tabeltoewijzing.

Retouren

Het aantal rijen dat is toegevoegd aan of vernieuwd in de DataSet. Dit omvat geen rijen die worden beïnvloed door instructies die geen rijen retourneren.

Uitzonderingen

Het DataSet is ongeldig.

De brontabel is ongeldig.

– of –

De verbinding is ongeldig.

Kan de verbinding niet vinden.

De startRecord parameter is kleiner dan 0.

– of –

De maxRecords parameter is kleiner dan 0.

Voorbeelden

In het volgende voorbeeld wordt de afgeleide klasse gebruikt om OleDbDataAdaptereen DataSet met 15 rijen, beginnend bij rij 10, in de tabel Categorieën te vullen. In dit voorbeeld wordt ervan uitgegaan dat u een OleDbDataAdapter en een DataSet.

public void GetRecords()
{
    // ...
    // create dataSet and adapter
    // ...
    adapter.Fill(dataSet,9,15,"Categories");
}
Public Sub GetRecords()
    ' ...
    ' create dataSet and adapter
    ' ...
    adapter.Fill(dataSet, 9, 15, "Categories")
End Sub

Opmerkingen

Een maxRecords waarde van 0 haalt alle records op die na de beginrecord zijn gevonden. Als maxRecords dit groter is dan het aantal resterende rijen, worden alleen de resterende rijen geretourneerd en wordt er geen fout weergegeven.

Als de bijbehorende select-opdracht een instructie is die meerdere resultaten retourneert, Fill is dit alleen van toepassing op maxRecords het eerste resultaat.

De Fill methode haalt de gegevens op uit de gegevensbron met behulp van een SELECT-instructie. Het IDbConnection object dat is gekoppeld aan de SELECT-instructie moet geldig zijn, maar hoeft niet geopend te zijn. Als de naam wordt gesloten voordat IDbConnection deze Fill wordt aangeroepen, wordt deze geopend om gegevens op te halen en vervolgens te worden gesloten. Als de verbinding is geopend voordat Fill deze wordt aangeroepen, blijft deze geopend.

Als een opdracht geen rijen retourneert, worden er geen tabellen toegevoegd aan de DataSettabel, maar er wordt geen uitzondering gegenereerd.

Als het DbDataAdapter object dubbele kolommen tegenkomt tijdens het vullen van een DataTablekolom, worden er namen gegenereerd voor de volgende kolommen, met behulp van het patroon 'columnname1', 'columnname2', 'columnname3', enzovoort. Als de binnenkomende gegevens niet-benoemde kolommen bevatten, worden ze in het DataSet patroon Kolom1, Kolom2 enzovoort geplaatst.

Wanneer de opgegeven query meerdere resultaten retourneert, wordt elke resultatenset in een afzonderlijke tabel geplaatst. Aanvullende resultatensets worden benoemd door integrale waarden toe te voegen aan de opgegeven tabelnaam (bijvoorbeeld 'Tabel', 'Tabel1', 'Tabel2', enzovoort). Omdat er geen tabel wordt gemaakt voor een query die geen rijen retourneert. Als u een invoegquery verwerkt, gevolgd door een selectiequery, wordt de tabel die voor de selectiequery is gemaakt de naam Tabel, omdat deze de eerste tabel is die is gemaakt. Als uw app kolom- en tabelnamen gebruikt, moet u ervoor zorgen dat er geen conflicten zijn met deze naamgevingspatronen.

De Fill methode ondersteunt scenario's waarin het meerdere DataSet objecten bevat waarvan de DataTable namen alleen per geval verschillen. In dergelijke situaties Fill voert u een hoofdlettergevoelige vergelijking uit om de bijbehorende tabel te vinden en maakt u een nieuwe tabel als er geen exacte overeenkomst bestaat. De volgende C#-code illustreert dit gedrag.

DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".

Als Fill wordt aangeroepen en de naam slechts één DataSet bevat waarvan de DataTable 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.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.

Als er een fout of uitzondering optreedt tijdens het invullen van de gegevenstabellen, blijven rijen toegevoegd vóór het optreden van de fout in de gegevenstabellen. De rest van de bewerking wordt afgebroken.

Wanneer de SELECT-instructie die wordt gebruikt om de DataSet resultaten te vullen meerdere resultaten retourneert, zoals batch-SQL-instructies, moet u rekening houden met het volgende:

  • Wanneer u meerdere resultaten van een batch-SQL-instructie verwerkt, maxRecords is dit alleen van toepassing op het eerste resultaat. Hetzelfde geldt voor rijen met hoofdstukresultaten (.NET Framework Data Provider alleen voor OLE DB). Het resultaat op het hoogste niveau wordt beperkt door maxRecords, maar alle onderliggende rijen worden toegevoegd.

  • Als een van de resultaten een fout bevat, worden alle volgende resultaten overgeslagen en niet toegevoegd aan de DataSet.

Wanneer u volgende Fill aanroepen gebruikt om de inhoud van de DataSetinhoud te vernieuwen, moet aan twee voorwaarden worden voldaan:

  1. De SQL-instructie moet overeenkomen met de instructie die in eerste instantie wordt gebruikt om de DataSet.

  2. De sleutelkolomgegevens moeten aanwezig zijn.

Als er informatie over de primaire sleutel aanwezig is, worden dubbele rijen op elkaar afgestemd en worden ze slechts eenmaal weergegeven in het DataTable bestand dat overeenkomt met de DataSet. De primaire-sleutelgegevens kunnen worden ingesteld via FillSchema, door de PrimaryKey eigenschap van de DataTableeigenschap op te geven of door de MissingSchemaAction eigenschap in te stellen op AddWithKey.

Als de SelectCommand de resultaten van een OUTER JOIN retourneert, stelt de DataAdapter geen PrimaryKey-waarde in voor het resulterende DataTable. U moet expliciet de primaire sleutel definiëren om ervoor te zorgen dat dubbele rijen correct worden opgelost. Zie Primaire sleutels definiëren voor meer informatie.

Note

Bij het verwerken van batch-SQL-instructies die meerdere resultaten retourneren, haalt de implementatie van FillSchema voor het .NET Framework-Data Provider voor OLE DB alleen schemagegevens op voor het eerste resultaat. Als u schemagegevens voor meerdere resultaten wilt ophalen, gebruikt Fill u deze met de MissingSchemaAction set op AddWithKey.

Note

Het DataSet zal niet meer bevatten dan het aantal records aangegeven door maxRecords. De volledige resultatenset die door de query wordt gegenereerd, wordt echter nog steeds geretourneerd vanaf de server.

Notities voor overnemers

Wanneer u Fill(DataSet) overschrijft in een afgeleide klasse, moet u de methode van Fill(DataSet) de basisklasse aanroepen.

Zie ook

Van toepassing op

Fill(Int32, Int32, DataTable[])

Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs

Hiermee worden rijen in een of meer DataTable objecten toegevoegd of vernieuwd zodat deze overeenkomen met de rijen in de gegevensbron die beginnen bij de opgegeven record en maximaal het opgegeven maximum aantal records worden opgehaald.

public:
 int Fill(int startRecord, int maxRecords, ... cli::array <System::Data::DataTable ^> ^ dataTables);
public int Fill(int startRecord, int maxRecords, params System.Data.DataTable[] dataTables);
override this.Fill : int * int * System.Data.DataTable[] -> int
Public Function Fill (startRecord As Integer, maxRecords As Integer, ParamArray dataTables As DataTable()) As Integer

Parameters

startRecord
Int32

Het recordnummer op basis van nul waarmee u wilt beginnen.

maxRecords
Int32

Het maximum aantal records dat moet worden opgehaald. Geef 0 op om alle records na de beginrecord op te halen.

dataTables
DataTable[]

De DataTable objecten die moeten worden ingevuld vanuit de gegevensbron.

Retouren

Het aantal rijen dat is toegevoegd aan of vernieuwd in de DataTable objecten. Deze waarde bevat geen rijen die worden beïnvloed door instructies die geen rijen retourneren.

Uitzonderingen

dataTables is null of een lege matrix.

startRecord is kleiner dan 0.

– of –

maxRecords is kleiner dan 0.

Opmerkingen

Een maxRecords waarde van 0 haalt alle records op die na de beginrecord zijn gevonden. Als maxRecords dit groter is dan het aantal resterende rijen, worden alleen de resterende rijen geretourneerd en wordt er geen fout weergegeven.

De Fill methode haalt rijen op uit de gegevensbron met behulp van de SELECT-instructie die is opgegeven door een gekoppelde SelectCommand eigenschap. Het verbindingsobject dat aan de SELECT-instructie is gekoppeld, moet geldig zijn, maar hoeft niet geopend te zijn. Als de verbinding wordt gesloten voordat Fill deze wordt aangeroepen, wordt deze geopend om gegevens op te halen en wordt deze gesloten. Als de verbinding is geopend voordat Fill deze wordt aangeroepen, blijft deze geopend.

Met Fill de bewerking worden de rijen vervolgens toegevoegd aan doelobjecten DataTable in het DataSetobject, waardoor de DataTable objecten worden gemaakt als ze nog niet bestaan. Bij het DataTable maken van Fill objecten worden normaal gesproken alleen metagegevens van kolomnamen gemaakt. Als de MissingSchemaAction eigenschap echter is ingesteld op AddWithKey, worden ook de juiste primaire sleutels en beperkingen gemaakt.

Als de SelectCommand de resultaten van een OUTER JOIN retourneert, stelt de DataAdapter geen PrimaryKey-waarde in voor het resulterende DataTable. U moet expliciet de primaire sleutel definiëren om ervoor te zorgen dat dubbele rijen correct worden opgelost. Zie Primaire sleutels definiëren voor meer informatie.

Als de gegevensadapter dubbele kolommen tegenkomt tijdens het vullen van een DataTablekolom, worden er namen gegenereerd voor de volgende kolommen, met behulp van het patroon 'columnname1', 'columnname2', 'columnname3', enzovoort. Als de binnenkomende gegevens niet-benoemde kolommen bevatten, worden ze in het DataSet patroon Kolom1, Kolom2 enzovoort geplaatst. Wanneer er meerdere resultatensets worden toegevoegd aan de DataSettabel, wordt elke resultatenset in een afzonderlijke tabel geplaatst. Aanvullende resultatensets worden benoemd door integrale waarden toe te voegen aan de opgegeven tabelnaam (bijvoorbeeld 'Tabel', 'Tabel1', 'Tabel2', enzovoort). Als uw app kolom- en tabelnamen gebruikt, moet u ervoor zorgen dat er geen conflicten zijn met deze naamgevingspatronen.

Wanneer de SELECT-instructie die wordt gebruikt om de DataSet resultaten te vullen meerdere resultaten retourneert, zoals een batch-SQL-instructie, als een van de resultaten een fout bevat, worden alle volgende resultaten overgeslagen en niet toegevoegd aan het DataSet.

U kunt de Fill methode meerdere keren op dezelfde DataTablemethode gebruiken. Als er een primaire sleutel bestaat, worden binnenkomende rijen samengevoegd met overeenkomende rijen die al bestaan. Als er geen primaire sleutel bestaat, worden binnenkomende rijen toegevoegd aan de DataTable.

Note

Bij het verwerken van batch-SQL-instructies die meerdere resultaten retourneren, haalt de implementatie van FillSchema voor het .NET Framework-Data Provider voor OLE DB alleen schemagegevens op voor het eerste resultaat. Als u schemagegevens voor meerdere resultaten wilt ophalen, gebruikt Fill u deze met de MissingSchemaAction set op AddWithKey.

Zie ook

Van toepassing op

Fill(DataTable)

Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs

Hiermee worden rijen in een opgegeven bereik in het DataSet opgegeven bereik toegevoegd of vernieuwd, zodat deze overeenkomen met de rijen in de gegevensbron met behulp van de DataTable naam.

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

Parameters

dataTable
DataTable

De naam van de DataTable te gebruiken naam voor tabeltoewijzing.

Retouren

Het aantal rijen dat is toegevoegd aan of vernieuwd in de DataSet. Dit omvat geen rijen die worden beïnvloed door instructies die geen rijen retourneren.

Uitzonderingen

De brontabel is ongeldig.

Opmerkingen

De Fill methode haalt rijen op uit de gegevensbron met behulp van de SELECT-instructie die is opgegeven door een gekoppelde SelectCommand eigenschap. Het verbindingsobject dat aan de SELECT-instructie is gekoppeld, moet geldig zijn, maar hoeft niet geopend te zijn. Als de verbinding wordt gesloten voordat Fill deze wordt aangeroepen, wordt deze geopend om gegevens op te halen en vervolgens gesloten. Als de verbinding is geopend voordat Fill deze wordt aangeroepen, blijft deze geopend.

Met Fill de bewerking worden de rijen vervolgens toegevoegd aan doelobjecten DataTable in het DataSetobject, waardoor de DataTable objecten worden gemaakt als ze nog niet bestaan. Bij het DataTable maken van Fill objecten worden normaal gesproken alleen metagegevens van kolomnamen gemaakt. Als de MissingSchemaAction eigenschap echter is ingesteld op AddWithKey, worden ook de juiste primaire sleutels en beperkingen gemaakt.

Als er DbDataAdapter dubbele kolommen optreden tijdens het vullen van een DataTablekolom, worden er namen gegenereerd voor de volgende kolommen, met behulp van het patroon 'columnname1', 'columnname2', 'columnname3', enzovoort. Als de binnenkomende gegevens niet-benoemde kolommen bevatten, worden ze in het DataSet patroon Kolom1, Kolom2 enzovoort geplaatst. Wanneer er meerdere resultatensets worden toegevoegd aan de DataSet resultatenset, wordt deze in een afzonderlijke tabel geplaatst.

De overbelasting ervan Fill als DataTable parameter verkrijgt alleen het eerste resultaat. Gebruik een overbelasting als FillDataSet parameter om meerdere resultaten te verkrijgen.

De Fill methode ondersteunt scenario's waarin het meerdere DataSet objecten bevat waarvan de DataTable namen alleen per geval verschillen. In dergelijke situaties Fill voert u een hoofdlettergevoelige vergelijking uit om de bijbehorende tabel te vinden en maakt u een nieuwe tabel als er geen exacte overeenkomst bestaat. De volgende C#-code illustreert dit gedrag.

DataSet dataset = new DataSet();
 dataset.Tables.Add("aaa");
 dataset.Tables.Add("AAA");
 adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.
    adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".

Als Fill wordt aangeroepen en de naam slechts één DataSet bevat waarvan de DataTable 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.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.

U kunt de Fill methode meerdere keren op dezelfde DataTablemethode gebruiken. Als er een primaire sleutel bestaat, worden binnenkomende rijen samengevoegd met overeenkomende rijen die al bestaan. Als er geen primaire sleutel bestaat, worden binnenkomende rijen toegevoegd aan de DataTable.

Als de SelectCommand de resultaten van een OUTER JOIN retourneert, stelt de DataAdapter geen PrimaryKey-waarde in voor het resulterende DataTable. U moet expliciet de primaire sleutel definiëren om ervoor te zorgen dat dubbele rijen correct worden opgelost. Zie Primaire sleutels definiëren voor meer informatie.

Note

Bij het verwerken van batch-SQL-instructies die meerdere resultaten retourneren, haalt de implementatie van Fill en FillSchema voor een .NET Framework-gegevensprovider schemagegevens op voor alleen het eerste resultaat.

Notities voor overnemers

Deze overbelasting van de methode Fill(DataSet) is beveiligd en is ontworpen voor gebruik door een .NET Framework-gegevensprovider.

Zie ook

Van toepassing op

Fill(DataTable, IDataReader)

Voegt rijen in een DataTable rij toe of vernieuwt deze zodat deze overeenkomen met de rijen in de gegevensbron met behulp van de opgegeven DataTable namen en IDataReader namen.

protected:
 virtual int Fill(System::Data::DataTable ^ dataTable, System::Data::IDataReader ^ dataReader);
protected virtual int Fill(System.Data.DataTable dataTable, System.Data.IDataReader dataReader);
override this.Fill : System.Data.DataTable * System.Data.IDataReader -> int
Protected Overridable Function Fill (dataTable As DataTable, dataReader As IDataReader) As Integer

Parameters

dataTable
DataTable

Een DataTable om records en, indien nodig, schema op te vullen.

dataReader
IDataReader

De naam van de IDataReader.

Retouren

Het aantal rijen dat is toegevoegd aan of vernieuwd in de DataTable. Dit omvat geen rijen die worden beïnvloed door instructies die geen rijen retourneren.

Van toepassing op

Fill(DataSet, String)

Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs

Hiermee worden rijen in de DataSet rijen toegevoegd of vernieuwd die overeenkomen met de rijen in de gegevensbron met behulp van de DataSet en DataTable namen.

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

Parameters

dataSet
DataSet

Een DataSet om records en, indien nodig, schema op te vullen.

srcTable
String

De naam van de brontabel die moet worden gebruikt voor tabeltoewijzing.

Retouren

Het aantal rijen dat is toegevoegd aan of vernieuwd in de DataSet. Dit omvat geen rijen die worden beïnvloed door instructies die geen rijen retourneren.

Uitzonderingen

De brontabel is ongeldig.

Voorbeelden

In het volgende voorbeeld wordt de afgeleide klasse gebruikt om een OleDbDataAdapter rij DataSetuit de categorieëntabel te vullen. In dit voorbeeld wordt ervan uitgegaan dat u een OleDbDataAdapter en een DataSet.

public void GetRecords()
{
    // ...
    // create dataSet and adapter
    // ...
    adapter.Fill(dataSet, "Categories");
}
Public Sub GetRecords()
    ' ...
    ' create dataSet and adapter
    ' ...
    adapter.Fill(dataSet, "Categories")
End Sub

Opmerkingen

De Fill methode haalt de gegevens op uit de gegevensbron met behulp van een SELECT-instructie. Het IDbConnection object dat is gekoppeld aan de select-opdracht moet geldig zijn, maar hoeft niet geopend te zijn. Als de naam wordt gesloten voordat IDbConnection deze Fill wordt aangeroepen, wordt deze geopend om gegevens op te halen en vervolgens gesloten. Als de verbinding is geopend voordat Fill deze wordt aangeroepen, blijft deze geopend.

Als een opdracht geen rijen retourneert, worden er geen tabellen aan de DataSettabel toegevoegd en wordt er geen uitzondering gegenereerd.

Als het DbDataAdapter object dubbele kolommen tegenkomt tijdens het vullen van een DataTablekolom, worden er namen gegenereerd voor de volgende kolommen, met behulp van het patroon 'columnname1', 'columnname2', 'columnname3', enzovoort. Als de binnenkomende gegevens niet-benoemde kolommen bevatten, worden ze in het DataSet patroon Kolom1, Kolom2 enzovoort geplaatst.

Wanneer de opgegeven query meerdere resultaten retourneert, wordt elke resultatenset in een afzonderlijke tabel geplaatst. Aanvullende resultatensets worden benoemd door integrale waarden toe te voegen aan de opgegeven tabelnaam (bijvoorbeeld 'Tabel', 'Tabel1', 'Tabel2', enzovoort). Omdat er geen tabel wordt gemaakt voor een query die geen rijen retourneert, wordt de tabel die is gemaakt voor de selectiequery de naam Tabel als u een invoegquery wilt verwerken, omdat dit de eerste tabel is die is gemaakt. Als uw app kolom- en tabelnamen gebruikt, moet u ervoor zorgen dat er geen conflicten zijn met deze naamgevingspatronen.

De Fill methode ondersteunt scenario's waarin het meerdere DataSet objecten bevat waarvan de DataTable namen alleen per geval verschillen. In dergelijke situaties Fill voert u een hoofdlettergevoelige vergelijking uit om de bijbehorende tabel te vinden en maakt u een nieuwe tabel als er geen exacte overeenkomst bestaat. De volgende C#-code illustreert dit gedrag.

DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".

Als Fill wordt aangeroepen en de naam slechts één DataSet bevat waarvan de DataTable 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.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.

Als er een fout of uitzondering optreedt tijdens het invullen van de gegevenstabellen, blijven rijen toegevoegd vóór het optreden van de fout in de gegevenstabellen. De rest van de bewerking wordt afgebroken.

Wanneer de SELECT-instructie die wordt gebruikt om de DataSet resultaten te vullen meerdere resultaten retourneert, zoals een batch-SQL-instructie, moet u rekening houden met het volgende:

  • Als een van de resultaten een fout bevat, worden alle volgende resultaten overgeslagen en niet toegevoegd aan de DataSet.

Wanneer u volgende Fill aanroepen gebruikt om de inhoud van de DataSetinhoud te vernieuwen, moet aan twee voorwaarden worden voldaan:

  1. De SQL-instructie moet overeenkomen met de instructie die in eerste instantie wordt gebruikt om de DataSet.

  2. De sleutelkolomgegevens moeten aanwezig zijn. Als er informatie over de primaire sleutel aanwezig is, worden eventuele dubbele rijen op elkaar afgestemd en worden ze slechts eenmaal weergegeven in de DataTable gegevens die overeenkomen met de DataSet. De primaire-sleutelgegevens kunnen worden ingesteld via FillSchema, door de PrimaryKey eigenschap van de DataTableeigenschap op te geven of door de MissingSchemaAction eigenschap in te stellen op AddWithKey.

Als de SelectCommand de resultaten van een OUTER JOIN retourneert, stelt de DataAdapter geen PrimaryKey-waarde in voor het resulterende DataTable. U moet expliciet de primaire sleutel definiëren om ervoor te zorgen dat dubbele rijen correct worden opgelost. Zie Primaire sleutels definiëren voor meer informatie.

Note

Bij het verwerken van batch-SQL-instructies die meerdere resultaten retourneren, haalt de implementatie van FillSchema voor het .NET Framework-Data Provider voor OLE DB alleen schemagegevens op voor het eerste resultaat. Als u schemagegevens voor meerdere resultaten wilt ophalen, gebruikt Fill u deze met de MissingSchemaAction set op AddWithKey.

Notities voor overnemers

Wanneer u Fill(DataSet) overschrijft in een afgeleide klasse, moet u de methode van Fill(DataSet) de basisklasse aanroepen.

Zie ook

Van toepassing op

Fill(DataSet)

Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs

Rijen toevoegen of vernieuwen in de DataSet.

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

Parameters

dataSet
DataSet

Een DataSet om records en, indien nodig, schema op te vullen.

Retouren

Het aantal rijen dat is toegevoegd aan of vernieuwd in de DataSet. Dit omvat geen rijen die worden beïnvloed door instructies die geen rijen retourneren.

Implementeringen

Opmerkingen

De Fill methode haalt de gegevens op uit de gegevensbron met behulp van een SELECT-instructie. Het IDbConnection object dat is gekoppeld aan de select-opdracht moet geldig zijn, maar hoeft niet geopend te zijn. Als de naam wordt gesloten voordat IDbConnection deze Fill wordt aangeroepen, wordt deze geopend om gegevens op te halen en vervolgens te worden gesloten. Als de verbinding is geopend voordat Fill deze wordt aangeroepen, blijft deze geopend.

Als er een fout of uitzondering optreedt tijdens het invullen van de gegevenstabellen, blijven rijen toegevoegd vóór het optreden van de fout in de gegevenstabellen. De rest van de bewerking wordt afgebroken.

Als een opdracht geen rijen retourneert, worden er geen tabellen aan de DataSettabel toegevoegd en wordt er geen uitzondering gegenereerd.

Als het DbDataAdapter object dubbele kolommen tegenkomt tijdens het vullen van een DataTablekolom, genereert het namen voor de volgende kolommen met behulp van het patroon 'columnname1', 'columnname2', 'columnname3', enzovoort. Als de binnenkomende gegevens niet-benoemde kolommen bevatten, worden ze in het DataSet patroon Kolom1, Kolom2 enzovoort geplaatst.

Wanneer de opgegeven query meerdere resultaten retourneert, wordt de resultatenset voor elke rij die de query retourneert in een afzonderlijke tabel geplaatst. Aanvullende resultatensets worden benoemd door integrale waarden toe te voegen aan de opgegeven tabelnaam (bijvoorbeeld 'Tabel', 'Tabel1', 'Tabel2', enzovoort). Omdat er geen tabel wordt gemaakt voor een query die geen rijen retourneert. Als u een invoegquery verwerkt, gevolgd door een selectiequery, wordt de tabel die voor de selectiequery is gemaakt de naam Tabel omdat deze de eerste tabel is die is gemaakt. Als uw app kolom- en tabelnamen gebruikt, moet u ervoor zorgen dat er geen conflicten zijn met deze naamgevingspatronen.

Wanneer de SELECT-instructie die wordt gebruikt voor het invullen van meerdere DataSet resultaten, zoals batch SQL-instructies, als een van de resultaten een fout bevat, worden alle volgende resultaten overgeslagen en worden ze niet toegevoegd aan de DataSetinstructie.

Wanneer u volgende Fill aanroepen gebruikt om de inhoud van de DataSetinhoud te vernieuwen, moet aan twee voorwaarden worden voldaan:

  1. De SQL-instructie moet overeenkomen met de instructie die in eerste instantie wordt gebruikt om de DataSet.

  2. De sleutelkolomgegevens moeten aanwezig zijn.

Als er informatie over de primaire sleutel aanwezig is, worden eventuele dubbele rijen op elkaar afgestemd en worden ze slechts eenmaal weergegeven in de DataTable gegevens die overeenkomen met de DataSet. De primaire-sleutelgegevens kunnen worden ingesteld via FillSchema, door de PrimaryKey eigenschap van de DataTableeigenschap op te geven of door de MissingSchemaAction eigenschap in te stellen op AddWithKey.

Als de SelectCommand de resultaten van een OUTER JOIN retourneert, stelt de DataAdapter geen PrimaryKey-waarde in voor het resulterende DataTable. U moet expliciet de primaire sleutel definiëren om ervoor te zorgen dat dubbele rijen correct worden opgelost. Zie Primaire sleutels definiëren voor meer informatie.

Note

Bij het verwerken van batch-SQL-instructies die meerdere resultaten retourneren, haalt de implementatie van FillSchema voor het .NET Framework-Data Provider voor OLE DB alleen schemagegevens op voor het eerste resultaat. Als u schemagegevens voor meerdere resultaten wilt ophalen, gebruikt Fill u deze met de MissingSchemaAction set op AddWithKey.

Zie ook

Van toepassing op

Fill(DataTable, IDbCommand, CommandBehavior)

Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs
Bron:
DbDataAdapter.cs

Voegt rijen in een DataTable rij toe of vernieuwt deze zodat deze overeenkomen met de rijen in de gegevensbron met behulp van de opgegeven DataTable, IDbCommand en CommandBehavior.

protected:
 virtual int Fill(System::Data::DataTable ^ dataTable, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill(System.Data.DataTable dataTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataTable * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataTable As DataTable, command As IDbCommand, behavior As CommandBehavior) As Integer

Parameters

dataTable
DataTable

Een DataTable om records en, indien nodig, schema op te vullen.

command
IDbCommand

De SQL SELECT-instructie die wordt gebruikt om rijen op te halen uit de gegevensbron.

behavior
CommandBehavior

Een van de CommandBehavior waarden.

Retouren

Het aantal rijen dat is toegevoegd aan of vernieuwd in de DataTable. Dit omvat geen rijen die worden beïnvloed door instructies die geen rijen retourneren.

Opmerkingen

De Fill methode haalt rijen op uit de gegevensbron met behulp van de SELECT-instructie die is opgegeven door een gekoppelde SelectCommand eigenschap. Het verbindingsobject dat aan de SELECT-instructie is gekoppeld, moet geldig zijn, maar hoeft niet geopend te zijn. Als de verbinding wordt gesloten voordat Fill deze wordt aangeroepen, wordt deze geopend om gegevens op te halen en vervolgens gesloten. Als de verbinding is geopend voordat Fill deze wordt aangeroepen, blijft deze geopend.

De Fill bewerking voegt vervolgens de rijen toe aan het opgegeven doelobject DataTable in het DataSetobject, waardoor het DataTable object wordt gemaakt als het nog niet bestaat. Bij het DataTable maken van een Fill object worden normaal gesproken alleen metagegevens van de kolomnaam gemaakt. Als de MissingSchemaAction eigenschap echter is ingesteld op AddWithKey, worden ook de juiste primaire sleutels en beperkingen gemaakt.

Als het DbDataAdapter object dubbele kolommen tegenkomt tijdens het vullen van een DataTablekolom, worden er namen gegenereerd voor de volgende kolommen, met behulp van het patroon 'columnname1', 'columnname2', 'columnname3', enzovoort. Als de binnenkomende gegevens niet-benoemde kolommen bevatten, worden ze in het DataSet patroon Kolom1, Kolom2 enzovoort geplaatst.

De overbelasting ervan Fill als DataTable parameter verkrijgt alleen het eerste resultaat. Gebruik een overbelasting als FillDataSet parameter om meerdere resultaten te verkrijgen.

U kunt de Fill methode meerdere keren op dezelfde DataTablemethode gebruiken. Als er een primaire sleutel bestaat, worden binnenkomende rijen samengevoegd met overeenkomende rijen die al bestaan. Als er geen primaire sleutel bestaat, worden binnenkomende rijen toegevoegd aan de DataTable.

Als de SelectCommand de resultaten van een OUTER JOIN retourneert, stelt de DataAdapter geen PrimaryKey-waarde in voor het resulterende DataTable. U moet expliciet de primaire sleutel definiëren om ervoor te zorgen dat dubbele rijen correct worden opgelost. Zie Primaire sleutels definiëren voor meer informatie.

Note

Bij het verwerken van batch-SQL-instructies die meerdere resultaten retourneren, haalt de implementatie van FillSchema voor het .NET Framework-Data Provider voor OLE DB alleen schemagegevens op voor het eerste resultaat. Als u schemagegevens voor meerdere resultaten wilt ophalen, gebruikt Fill u deze met de MissingSchemaAction set op AddWithKey.

Notities voor overnemers

Deze overbelasting van de methode Fill(DataSet) is beveiligd en is ontworpen voor gebruik door een .NET Framework-gegevensprovider.

Zie ook

Van toepassing op