DbDataAdapter.Fill Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Överlagringar
| Name | Description |
|---|---|
| Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior) |
Lägger till eller uppdaterar rader i ett angivet intervall i DataSet för att matcha dem i datakällan med hjälp av källtabellnamnen DataSet , kommandosträngen och kommandobeteendet. |
| Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior) |
Lägger till eller uppdaterar rader i ett angivet intervall i DataSet för att matcha dem i datakällan med hjälp av DataSet namnen och DataTable . |
| Fill(DataSet, String, IDataReader, Int32, Int32) |
Lägger till eller uppdaterar rader i ett angivet intervall i DataSet för att matcha dem i datakällan med hjälp av DataSetnamnen , DataTableoch IDataReader . |
| Fill(DataSet, Int32, Int32, String) |
Lägger till eller uppdaterar rader i ett angivet intervall i DataSet för att matcha dem i datakällan med hjälp av DataSet namnen och DataTable . |
| Fill(Int32, Int32, DataTable[]) |
Lägger till eller uppdaterar rader i ett eller flera DataTable objekt för att matcha dem i datakällan som börjar vid den angivna posten och hämtar upp till det angivna maximala antalet poster. |
| Fill(DataTable) |
Lägger till eller uppdaterar rader i ett angivet intervall i DataSet för att matcha dem i datakällan med hjälp av DataTable namnet. |
| Fill(DataTable, IDataReader) |
Lägger till eller uppdaterar rader i en DataTable för att matcha dem i datakällan med hjälp av angivna DataTable och IDataReader namn. |
| Fill(DataSet, String) |
Lägger till eller uppdaterar rader i DataSet för att matcha dem i datakällan med hjälp av DataSet namnen och DataTable . |
| Fill(DataSet) |
Lägger till eller uppdaterar rader i DataSet. |
| Fill(DataTable, IDbCommand, CommandBehavior) |
Lägger till eller uppdaterar rader i en DataTable för att matcha dem i datakällan med hjälp av angivna DataTable, IDbCommand och CommandBehavior. |
Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
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
Parametrar
- startRecord
- Int32
Det nollbaserade postnumret som ska börja med.
- maxRecords
- Int32
Det maximala antalet poster som ska hämtas. Ange 0 för att hämta alla poster efter startposten.
- srcTable
- String
Namnet på källtabellen som ska användas för tabellmappning.
- command
- IDbCommand
SQL SELECT-instruktionen som används för att hämta rader från datakällan.
- behavior
- CommandBehavior
Ett av CommandBehavior värdena.
Returer
Antalet rader som har lagts till eller uppdaterats i DataSet. Detta inkluderar inte rader som påverkas av instruktioner som inte returnerar rader.
Undantag
Källtabellen är ogiltig.
Parametern startRecord är mindre än 0.
-eller-
Parametern maxRecords är mindre än 0.
Kommentarer
Värdet maxRecords 0 hämtar alla poster som hittades efter startposten. Om maxRecords är större än antalet återstående rader returneras endast de återstående raderna och inget fel utfärdas.
Metoden Fill hämtar rader från datakällan med hjälp av SELECT-instruktionen som anges av en associerad SelectCommand egenskap. Anslutningsobjektet som är associerat med SELECT-instruktionen måste vara giltigt, men det behöver inte vara öppet. Om anslutningen stängs innan Fill anropas öppnas den för att hämta data och stängs sedan. Om anslutningen är öppen innan Fill anropas förblir den öppen.
Åtgärden Fill lägger sedan till raderna i målobjekten DataTableDataSeti , vilket skapar objekten DataTable om de inte redan finns. När du skapar DataTable objekt Fill skapar åtgärden normalt endast metadata för kolumnnamn. Men om egenskapen MissingSchemaAction är inställd på AddWithKeyskapas även lämpliga primära nycklar och begränsningar.
Om det DbDataAdapter uppstår dubbletter av kolumner när du fyller i en DataTablegenereras namn för efterföljande kolumner med hjälp av mönstret "columnname1", "columnname2", "columnname3" och så vidare. Om inkommande data innehåller icke namngivna kolumner placeras de i DataSet enligt mönstret "Column1", "Column2" och så vidare. När flera resultatuppsättningar läggs till i varje DataSet resultatuppsättning placeras i en separat tabell. Ytterligare resultatuppsättningar namnges genom att integralvärden läggs till i det angivna tabellnamnet (till exempel "Tabell", "Table1", "Table2" och så vidare). Om din app använder kolumn- och tabellnamn kontrollerar du att det inte finns några konflikter med dessa namngivningsmönster.
Metoden Fill stöder scenarier där DataSet innehåller flera DataTable objekt vars namn endast skiljer sig åt från fall till fall. I sådana situationer Fill utför du en skiftlägeskänslig jämförelse för att hitta motsvarande tabell och skapar en ny tabell om det inte finns någon exakt matchning. Följande C#-kod illustrerar det här beteendet.
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".
Om Fill anropas och DataSet innehåller endast en DataTable vars namn endast skiljer sig åt från fall till fall uppdateras det DataTable . I det här scenariot är jämförelsen skiftlägesokänslig. Följande C#-kod illustrerar det här beteendet.
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.
Du kan använda Fill metoden flera gånger på samma DataTable. Om det finns en primärnyckel sammanfogas inkommande rader med matchande rader som redan finns. Om det inte finns någon primärnyckel läggs inkommande rader till i DataTable.
Om SelectCommand returnerar resultatet av en OUTER JOIN, anger inte DataAdapter ett PrimaryKey värde för den resulterande DataTable. Du måste uttryckligen definiera den primära nyckeln för att säkerställa att dubbletter av rader matchas korrekt. Mer information finns i Definiera primära nycklar.
Note
När du hanterar batch-SQL-instruktioner som returnerar flera resultat hämtar implementeringen av Fill och FillSchema för en .NET Framework-dataprovider schemainformation för endast det första resultatet.
Anteckningar till arvingar
Den här överlagringen av metoden Fill(DataSet) är skyddad och är utformad för användning av en .NET Framework-dataprovider.
Se även
Gäller för
Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
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
Parametrar
- startRecord
- Int32
Det nollbaserade postnumret som ska börja med.
- maxRecords
- Int32
Det maximala antalet poster som ska hämtas. Ange 0 för att hämta alla poster efter startposten.
- command
- IDbCommand
Den IDbCommand som körs för att fylla objekten DataTable .
- behavior
- CommandBehavior
Ett av CommandBehavior värdena.
Returer
Antalet rader som har lagts till eller uppdaterats i datatabellerna.
Undantag
Är DataSet ogiltigt.
Det gick inte att hitta anslutningen.
Parametern startRecord är mindre än 0.
-eller-
Parametern maxRecords är mindre än 0.
Kommentarer
Värdet maxRecords 0 hämtar alla poster som hittades efter startposten. Om maxRecords är större än antalet återstående rader returneras endast de återstående raderna och inget fel utfärdas.
Metoden Fill hämtar data från datakällan med hjälp av en SELECT-instruktion. Objektet IDbConnection som är associerat med SELECT-instruktionen måste vara giltigt, men det behöver inte vara öppet. IDbConnection Om är stängd innan Fill anropas öppnas den för att hämta data och stängs sedan. Om anslutningen är öppen innan Fill anropas förblir den öppen.
Om ett kommando inte returnerar några rader läggs inga tabeller till i DataSet, men inget undantag utlöses.
DbDataAdapter Om objektet stöter på dubblettkolumner när det fyller i en DataTablegenereras namn för efterföljande kolumner med hjälp av mönstret "columnname1", "columnname2", "columnname3" och så vidare. Om inkommande data innehåller icke namngivna kolumner placeras de i DataSet enligt mönstret "Column1", "Column2" och så vidare.
När den angivna frågan returnerar flera resultat placeras varje resultatuppsättning i en separat tabell. Ytterligare resultatuppsättningar namnges genom att integralvärden läggs till i det angivna tabellnamnet (till exempel "Tabell", "Table1", "Table2" och så vidare). Eftersom ingen tabell skapas för en fråga som inte returnerar rader, skulle tabellen som skapats för den valda frågan ha namnet "Tabell" om du skulle bearbeta en infogad fråga följt av en select-fråga, eftersom det är den första tabellen som skapas. Om din app använder kolumn- och tabellnamn kontrollerar du att det inte finns några konflikter med dessa namngivningsmönster.
Metoden Fill stöder scenarier där DataSet innehåller flera DataTable objekt vars namn endast skiljer sig åt från fall till fall. I sådana situationer Fill utför du en skiftlägeskänslig jämförelse för att hitta motsvarande tabell och skapar en ny tabell om det inte finns någon exakt matchning. Följande C#-kod illustrerar det här beteendet.
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".
Om Fill anropas och DataSet innehåller endast en DataTable vars namn endast skiljer sig åt från fall till fall uppdateras det DataTable . I det här scenariot är jämförelsen skiftlägesokänslig. Följande C#-kod illustrerar det här beteendet.
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.
Om ett fel eller ett undantag påträffas när datatabellerna fylls i, finns rader som lades till innan felet inträffade kvar i datatabellerna. Resten av åtgärden avbryts.
När SELECT-instruktionen som används för att fylla i objekten DataTable returnerar flera resultat, till exempel en BATCH SQL-instruktion, bör du vara medveten om följande:
När du bearbetar flera resultat från en BATCH SQL-instruktion
maxRecordsgäller endast det första resultatet. Detsamma gäller för rader som innehåller kapitlade resultat (endast .NET Framework-Data Provider för OLE DB). Resultatet på den översta nivån begränsas avmaxRecords, men alla underordnade rader läggs till.Om ett av resultaten innehåller ett fel hoppas alla efterföljande resultat över.
Note
Innehåller DataSet inte mer än antalet poster som anges av maxRecords. Men hela resultatuppsättningen som genereras av frågan returneras fortfarande från servern.
Anteckningar till arvingar
När du åsidosättar Fill(DataSet) i en härledd klass måste du anropa basklassens Fill(DataSet) metod.
Se även
Gäller för
Fill(DataSet, String, IDataReader, Int32, Int32)
Lägger till eller uppdaterar rader i ett angivet intervall i DataSet för att matcha dem i datakällan med hjälp av DataSetnamnen , DataTableoch IDataReader .
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
Parametrar
- dataReader
- IDataReader
Namnet på IDataReader.
- startRecord
- Int32
Det nollbaserade postnumret som ska börja med.
- maxRecords
- Int32
Det maximala antalet poster som ska hämtas. Ange 0 för att hämta alla poster efter startposten.
Returer
Antalet rader som har lagts till eller uppdaterats i DataSet. Detta inkluderar inte rader som påverkas av instruktioner som inte returnerar rader.
Undantag
Kommentarer
Värdet maxRecords 0 hämtar alla poster som hittades efter startposten. Om maxRecords är större än antalet återstående rader returneras endast de återstående raderna och inget fel utfärdas.
Gäller för
Fill(DataSet, Int32, Int32, String)
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
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
Parametrar
- startRecord
- Int32
Det nollbaserade postnumret som ska börja med.
- maxRecords
- Int32
Det maximala antalet poster som ska hämtas. Ange 0 för att hämta alla poster efter startposten.
- srcTable
- String
Namnet på källtabellen som ska användas för tabellmappning.
Returer
Antalet rader som har lagts till eller uppdaterats i DataSet. Detta inkluderar inte rader som påverkas av instruktioner som inte returnerar rader.
Undantag
Är DataSet ogiltigt.
Det gick inte att hitta anslutningen.
Parametern startRecord är mindre än 0.
-eller-
Parametern maxRecords är mindre än 0.
Exempel
I följande exempel används den härledda klassen, OleDbDataAdapter, för att fylla en DataSet med 15 rader, med början på rad 10, från tabellen Kategorier . Det här exemplet förutsätter att du har skapat en OleDbDataAdapter och en 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
Kommentarer
Värdet maxRecords 0 hämtar alla poster som hittades efter startposten. Om maxRecords är större än antalet återstående rader returneras endast de återstående raderna och inget fel utfärdas.
Om motsvarande select-kommando är en instruktion som returnerar flera resultat Fill gäller maxRecords endast det första resultatet.
Metoden Fill hämtar data från datakällan med hjälp av en SELECT-instruktion. Objektet IDbConnection som är associerat med SELECT-instruktionen måste vara giltigt, men det behöver inte vara öppet. IDbConnection Om stängs innan Fill anropas öppnas den för att hämta data och stängs sedan. Om anslutningen är öppen innan Fill anropas förblir den öppen.
Om ett kommando inte returnerar några rader läggs inga tabeller till i DataSet, men inget undantag utlöses.
DbDataAdapter Om objektet stöter på dubblettkolumner när det fyller i en DataTablegenereras namn för efterföljande kolumner med hjälp av mönstret "columnname1", "columnname2", "columnname3" och så vidare. Om inkommande data innehåller icke namngivna kolumner placeras de i DataSet enligt mönstret "Column1", "Column2" och så vidare.
När den angivna frågan returnerar flera resultat placeras varje resultatuppsättning i en separat tabell. Ytterligare resultatuppsättningar namnges genom att integralvärden läggs till i det angivna tabellnamnet (till exempel "Tabell", "Table1", "Table2" och så vidare). Eftersom ingen tabell skapas för en fråga som inte returnerar rader, om du bearbetar en insert-fråga följt av en select-fråga, heter tabellen som skapats för select-frågan "Tabell", eftersom det är den första tabellen som skapas. Om din app använder kolumn- och tabellnamn kontrollerar du att det inte finns några konflikter med dessa namngivningsmönster.
Metoden Fill stöder scenarier där DataSet innehåller flera DataTable objekt vars namn endast skiljer sig åt från fall till fall. I sådana situationer Fill utför du en skiftlägeskänslig jämförelse för att hitta motsvarande tabell och skapar en ny tabell om det inte finns någon exakt matchning. Följande C#-kod illustrerar det här beteendet.
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".
Om Fill anropas och DataSet innehåller endast en DataTable vars namn endast skiljer sig åt från fall till fall uppdateras det DataTable . I det här scenariot är jämförelsen skiftlägesokänslig. Följande C#-kod illustrerar det här beteendet.
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.
Om ett fel eller ett undantag påträffas när datatabellerna fylls i, finns rader som lades till innan felet inträffade kvar i datatabellerna. Resten av åtgärden avbryts.
När SELECT-instruktionen som används för att fylla i DataSet returnerar flera resultat, till exempel batch-SQL-uttryck, bör du vara medveten om följande:
När du bearbetar flera resultat från en BATCH SQL-instruktion
maxRecordsgäller endast det första resultatet. Detsamma gäller för rader som innehåller kapitlade resultat (endast .NET Framework-Data Provider för OLE DB). Resultatet på den översta nivån begränsas avmaxRecords, men alla underordnade rader läggs till.Om ett av resultaten innehåller ett fel hoppas alla efterföljande resultat över och läggs inte till i DataSet.
När du använder efterföljande Fill anrop för att uppdatera innehållet i DataSetmåste två villkor uppfyllas:
SQL-instruktionen ska matcha den som ursprungligen användes för att fylla i DataSet.
Information om nyckelkolumnen måste finnas.
Om primärnyckelinformation finns, kommer dubbletter av rader att stämmas av och endast visas en gång i DataTable som motsvarar DataSet. Primär nyckelinformation kan anges antingen via FillSchema, genom att PrimaryKey ange egenskapen DataTableför eller genom att ställa in MissingSchemaAction egenskapen på AddWithKey.
Om SelectCommand returnerar resultatet av en OUTER JOIN, anger inte DataAdapter ett PrimaryKey värde för den resulterande DataTable. Du måste uttryckligen definiera den primära nyckeln för att säkerställa att dubbletter av rader matchas korrekt. Mer information finns i Definiera primära nycklar.
Note
När du hanterar batch-SQL-instruktioner som returnerar flera resultat hämtar implementeringen av FillSchema för .NET Framework-Data Provider för OLE DB schemainformation för endast det första resultatet. Om du vill hämta schemainformation för flera resultat använder du Fill med inställningen MissingSchemaAction till AddWithKey.
Note
Innehåller DataSet inte mer än antalet poster som anges av maxRecords. Hela resultatuppsättningen som genereras av frågan returneras dock fortfarande från servern.
Anteckningar till arvingar
När du åsidosättar Fill(DataSet) i en härledd klass måste du anropa basklassens Fill(DataSet) metod.
Se även
Gäller för
Fill(Int32, Int32, DataTable[])
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
Lägger till eller uppdaterar rader i ett eller flera DataTable objekt för att matcha dem i datakällan som börjar vid den angivna posten och hämtar upp till det angivna maximala antalet poster.
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
Parametrar
- startRecord
- Int32
Det nollbaserade postnumret som ska börja med.
- maxRecords
- Int32
Det maximala antalet poster som ska hämtas. Ange 0 för att hämta alla poster efter startposten.
Returer
Antalet rader som har lagts till eller uppdaterats i objekten DataTable . Det här värdet inkluderar inte rader som påverkas av instruktioner som inte returnerar rader.
Undantag
dataTables är null eller en tom matris.
Kommentarer
Värdet maxRecords 0 hämtar alla poster som hittades efter startposten. Om maxRecords är större än antalet återstående rader returneras endast de återstående raderna och inget fel utfärdas.
Metoden Fill hämtar rader från datakällan med hjälp av SELECT-instruktionen som anges av en associerad SelectCommand egenskap. Anslutningsobjektet som är associerat med SELECT-instruktionen måste vara giltigt, men det behöver inte vara öppet. Om anslutningen stängs innan Fill anropas öppnas den för att hämta data och sedan stängs den. Om anslutningen är öppen innan Fill anropas förblir den öppen.
Åtgärden Fill lägger sedan till raderna i målobjekten DataTableDataSeti , vilket skapar objekten DataTable om de inte redan finns. När du skapar DataTable objekt Fill skapar åtgärden normalt endast metadata för kolumnnamn. Men om egenskapen MissingSchemaAction är inställd på AddWithKeyskapas även lämpliga primära nycklar och begränsningar.
Om SelectCommand returnerar resultatet av en OUTER JOIN, anger inte DataAdapter ett PrimaryKey värde för den resulterande DataTable. Du måste uttryckligen definiera den primära nyckeln för att säkerställa att dubbletter av rader matchas korrekt. Mer information finns i Definiera primära nycklar.
Om datakortet stöter på dubblettkolumner när du fyller i en DataTablegenereras namn för efterföljande kolumner med hjälp av mönstret "columnname1", "columnname2", "columnname3" och så vidare. Om inkommande data innehåller icke namngivna kolumner placeras de i DataSet enligt mönstret "Column1", "Column2" och så vidare. När flera resultatuppsättningar läggs till i DataSetplaceras varje resultatuppsättning i en separat tabell. Ytterligare resultatuppsättningar namnges genom att integralvärden läggs till i det angivna tabellnamnet (till exempel "Tabell", "Table1", "Table2" och så vidare). Om din app använder kolumn- och tabellnamn kontrollerar du att det inte finns några konflikter med dessa namngivningsmönster.
När SELECT-instruktionen som används för att fylla i DataSet returnerar flera resultat, till exempel en BATCH SQL-instruktion, om ett av resultaten innehåller ett fel, hoppas alla efterföljande resultat över och läggs inte till i DataSet.
Du kan använda Fill metoden flera gånger på samma DataTable. Om det finns en primärnyckel sammanfogas inkommande rader med matchande rader som redan finns. Om det inte finns någon primärnyckel läggs inkommande rader till i DataTable.
Note
När du hanterar batch-SQL-instruktioner som returnerar flera resultat hämtar implementeringen av FillSchema för .NET Framework-Data Provider för OLE DB schemainformation för endast det första resultatet. Om du vill hämta schemainformation för flera resultat använder du Fill med inställningen MissingSchemaAction till AddWithKey.
Se även
Gäller för
Fill(DataTable)
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
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
Parametrar
Returer
Antalet rader som har lagts till eller uppdaterats i DataSet. Detta inkluderar inte rader som påverkas av instruktioner som inte returnerar rader.
Undantag
Källtabellen är ogiltig.
Kommentarer
Metoden Fill hämtar rader från datakällan med hjälp av SELECT-instruktionen som anges av en associerad SelectCommand egenskap. Anslutningsobjektet som är associerat med SELECT-instruktionen måste vara giltigt, men det behöver inte vara öppet. Om anslutningen stängs innan Fill anropas öppnas den för att hämta data och stängs sedan. Om anslutningen är öppen innan Fill anropas förblir den öppen.
Åtgärden Fill lägger sedan till raderna i målobjekten DataTableDataSeti , vilket skapar objekten DataTable om de inte redan finns. När du skapar DataTable objekt Fill skapar åtgärden normalt endast metadata för kolumnnamn. Men om egenskapen MissingSchemaAction är inställd på AddWithKeyskapas även lämpliga primära nycklar och begränsningar.
Om det DbDataAdapter uppstår dubbletter av kolumner när du fyller i en DataTablegenereras namn för efterföljande kolumner med hjälp av mönstret "columnname1", "columnname2", "columnname3" och så vidare. Om inkommande data innehåller icke namngivna kolumner placeras de i DataSet enligt mönstret "Column1", "Column2" och så vidare. När flera resultatuppsättningar läggs till i varje DataSet resultatuppsättning placeras i en separat tabell.
Överlagringen av Fill det tar DataTable som en parameter endast hämtar det första resultatet. Använd en överlagring av Fill som tar DataSet som en parameter för att få flera resultat.
Metoden Fill stöder scenarier där DataSet innehåller flera DataTable objekt vars namn endast skiljer sig åt från fall till fall. I sådana situationer Fill utför du en skiftlägeskänslig jämförelse för att hitta motsvarande tabell och skapar en ny tabell om det inte finns någon exakt matchning. Följande C#-kod illustrerar det här beteendet.
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".
Om Fill anropas och DataSet innehåller endast en DataTable vars namn endast skiljer sig åt från fall till fall uppdateras det DataTable . I det här scenariot är jämförelsen skiftlägesokänslig. Följande C#-kod illustrerar det här beteendet.
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.
Du kan använda Fill metoden flera gånger på samma DataTable. Om det finns en primärnyckel sammanfogas inkommande rader med matchande rader som redan finns. Om det inte finns någon primärnyckel läggs inkommande rader till i DataTable.
Om SelectCommand returnerar resultatet av en OUTER JOIN, anger inte DataAdapter ett PrimaryKey värde för den resulterande DataTable. Du måste uttryckligen definiera den primära nyckeln för att säkerställa att dubbletter av rader matchas korrekt. Mer information finns i Definiera primära nycklar.
Note
När du hanterar batch-SQL-instruktioner som returnerar flera resultat hämtar implementeringen av Fill och FillSchema för en .NET Framework-dataprovider schemainformation för endast det första resultatet.
Anteckningar till arvingar
Den här överlagringen av metoden Fill(DataSet) är skyddad och är utformad för användning av en .NET Framework-dataprovider.
Se även
Gäller för
Fill(DataTable, IDataReader)
Lägger till eller uppdaterar rader i en DataTable för att matcha dem i datakällan med hjälp av angivna DataTable och IDataReader namn.
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
Parametrar
- dataReader
- IDataReader
Namnet på IDataReader.
Returer
Antalet rader som har lagts till eller uppdaterats i DataTable. Detta inkluderar inte rader som påverkas av instruktioner som inte returnerar rader.
Gäller för
Fill(DataSet, String)
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
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
Parametrar
- srcTable
- String
Namnet på källtabellen som ska användas för tabellmappning.
Returer
Antalet rader som har lagts till eller uppdaterats i DataSet. Detta inkluderar inte rader som påverkas av instruktioner som inte returnerar rader.
Undantag
Källtabellen är ogiltig.
Exempel
I följande exempel används den härledda klassen , OleDbDataAdapterför att fylla en DataSet med rader från kategoritabellen. Det här exemplet förutsätter att du har skapat en OleDbDataAdapter och en 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
Kommentarer
Metoden Fill hämtar data från datakällan med hjälp av en SELECT-instruktion. Objektet IDbConnection som är associerat med kommandot select måste vara giltigt, men det behöver inte vara öppet. IDbConnection Om är stängd innan Fill anropas öppnas den för att hämta data och stängs sedan. Om anslutningen är öppen innan Fill anropas förblir den öppen.
Om ett kommando inte returnerar några rader läggs inga tabeller till i DataSet, och inget undantag utlöses.
DbDataAdapter Om objektet stöter på dubblettkolumner när det fyller i en DataTablegenereras namn för efterföljande kolumner med hjälp av mönstret "columnname1", "columnname2", "columnname3" och så vidare. Om inkommande data innehåller icke namngivna kolumner placeras de i DataSet enligt mönstret "Column1", "Column2" och så vidare.
När den angivna frågan returnerar flera resultat placeras varje resultatuppsättning i en separat tabell. Ytterligare resultatuppsättningar namnges genom att integralvärden läggs till i det angivna tabellnamnet (till exempel "Tabell", "Table1", "Table2" och så vidare). Eftersom ingen tabell skapas för en fråga som inte returnerar rader, skulle tabellen som skapats för den valda frågan ha namnet "Tabell" om du skulle bearbeta en infogad fråga följt av en select-fråga, eftersom det är den första tabellen som skapas. Om din app använder kolumn- och tabellnamn kontrollerar du att det inte finns några konflikter med dessa namngivningsmönster.
Metoden Fill stöder scenarier där DataSet innehåller flera DataTable objekt vars namn endast skiljer sig åt från fall till fall. I sådana situationer Fill utför du en skiftlägeskänslig jämförelse för att hitta motsvarande tabell och skapar en ny tabell om det inte finns någon exakt matchning. Följande C#-kod illustrerar det här beteendet.
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".
Om Fill anropas och DataSet innehåller endast en DataTable vars namn endast skiljer sig åt från fall till fall uppdateras det DataTable . I det här scenariot är jämförelsen skiftlägesokänslig. Följande C#-kod illustrerar det här beteendet.
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.
Om ett fel eller ett undantag påträffas när datatabellerna fylls i, finns rader som lades till innan felet inträffade kvar i datatabellerna. Resten av åtgärden avbryts.
När SELECT-instruktionen som används för att fylla i DataSet returnerar flera resultat, till exempel en BATCH SQL-instruktion, bör du vara medveten om följande:
- Om ett av resultaten innehåller ett fel hoppas alla efterföljande resultat över och läggs inte till i DataSet.
När du använder efterföljande Fill anrop för att uppdatera innehållet i DataSetmåste två villkor uppfyllas:
SQL-instruktionen ska matcha den som ursprungligen användes för att fylla i DataSet.
Information om nyckelkolumnen måste finnas. Om primärnyckelinformation finns, avstäms dubbletter av rader och visas bara en gång i DataTable som motsvarar DataSet. Primär nyckelinformation kan anges antingen via FillSchema, genom att PrimaryKey ange egenskapen DataTableför eller genom att ställa in MissingSchemaAction egenskapen på
AddWithKey.
Om SelectCommand returnerar resultatet av en OUTER JOIN, anger inte DataAdapter ett PrimaryKey värde för den resulterande DataTable. Du måste uttryckligen definiera den primära nyckeln för att säkerställa att dubbletter av rader matchas korrekt. Mer information finns i Definiera primära nycklar.
Note
När du hanterar batch-SQL-instruktioner som returnerar flera resultat hämtar implementeringen av FillSchema för .NET Framework-Data Provider för OLE DB schemainformation för endast det första resultatet. Om du vill hämta schemainformation för flera resultat använder du Fill med inställningen MissingSchemaAction till AddWithKey.
Anteckningar till arvingar
När du åsidosättar Fill(DataSet) i en härledd klass måste du anropa basklassens Fill(DataSet) metod.
Se även
Gäller för
Fill(DataSet)
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
Lägger till eller uppdaterar rader i 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
Parametrar
Returer
Antalet rader som har lagts till eller uppdaterats i DataSet. Detta inkluderar inte rader som påverkas av instruktioner som inte returnerar rader.
Implementeringar
Kommentarer
Metoden Fill hämtar data från datakällan med hjälp av en SELECT-instruktion. Objektet IDbConnection som är associerat med kommandot select måste vara giltigt, men det behöver inte vara öppet. IDbConnection Om stängs innan Fill anropas öppnas den för att hämta data och stängs sedan. Om anslutningen är öppen innan Fill anropas förblir den öppen.
Om ett fel eller ett undantag påträffas när datatabellerna fylls i, finns rader som lades till innan felet inträffade kvar i datatabellerna. Resten av åtgärden avbryts.
Om ett kommando inte returnerar några rader läggs inga tabeller till i DataSet, och inget undantag utlöses.
DbDataAdapter Om objektet stöter på dubbletter av kolumner när det fyller i en DataTablegenereras namn för efterföljande kolumner med mönstret "columnname1", "columnname2", "columnname3" och så vidare. Om inkommande data innehåller icke namngivna kolumner placeras de i DataSet enligt mönstret "Column1", "Column2" och så vidare.
När den angivna frågan returnerar flera resultat placeras resultatuppsättningen för varje rad som returnerar frågan i en separat tabell. Ytterligare resultatuppsättningar namnges genom att integralvärden läggs till i det angivna tabellnamnet (till exempel "Tabell", "Table1", "Table2" och så vidare). Eftersom ingen tabell skapas för en fråga som inte returnerar rader, om du bearbetar en insert-fråga följt av en select-fråga, heter tabellen som skapats för select-frågan "Tabell" eftersom det är den första tabellen som skapas. Om din app använder kolumn- och tabellnamn kontrollerar du att det inte finns några konflikter med dessa namngivningsmönster.
När SELECT-instruktionen som används för att fylla i DataSet returnerar flera resultat, till exempel batch-SQL-uttryck, om ett av resultaten innehåller ett fel, hoppas alla efterföljande resultat över och läggs inte till i DataSet.
När du använder efterföljande Fill anrop för att uppdatera innehållet i DataSetmåste två villkor uppfyllas:
SQL-instruktionen ska matcha den som ursprungligen användes för att fylla i DataSet.
Information om nyckelkolumnen måste finnas.
Om primärnyckelinformation finns, avstäms dubbletter av rader och visas bara en gång i DataTable som motsvarar DataSet. Primär nyckelinformation kan anges antingen via FillSchema, genom att PrimaryKey ange egenskapen DataTableför eller genom att ställa in MissingSchemaAction egenskapen på AddWithKey.
Om SelectCommand returnerar resultatet av en OUTER JOIN, anger inte DataAdapter ett PrimaryKey värde för den resulterande DataTable. Du måste uttryckligen definiera den primära nyckeln för att säkerställa att dubbletter av rader matchas korrekt. Mer information finns i Definiera primära nycklar.
Note
När du hanterar batch-SQL-instruktioner som returnerar flera resultat hämtar implementeringen av FillSchema för .NET Framework-Data Provider för OLE DB schemainformation för endast det första resultatet. Om du vill hämta schemainformation för flera resultat använder du Fill med inställningen MissingSchemaAction till AddWithKey.
Se även
Gäller för
Fill(DataTable, IDbCommand, CommandBehavior)
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
- Källa:
- DbDataAdapter.cs
Lägger till eller uppdaterar rader i en DataTable för att matcha dem i datakällan med hjälp av angivna DataTable, IDbCommand och 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
Parametrar
- command
- IDbCommand
SQL SELECT-instruktionen som används för att hämta rader från datakällan.
- behavior
- CommandBehavior
Ett av CommandBehavior värdena.
Returer
Antalet rader som har lagts till eller uppdaterats i DataTable. Detta inkluderar inte rader som påverkas av instruktioner som inte returnerar rader.
Kommentarer
Metoden Fill hämtar rader från datakällan med hjälp av SELECT-instruktionen som anges av en associerad SelectCommand egenskap. Anslutningsobjektet som är associerat med SELECT-instruktionen måste vara giltigt, men det behöver inte vara öppet. Om anslutningen stängs innan Fill anropas öppnas den för att hämta data och stängs sedan. Om anslutningen är öppen innan Fill anropas förblir den öppen.
Åtgärden Fill lägger sedan till raderna i det angivna målobjektet DataTable i DataSet, vilket skapar DataTable objektet om det inte redan finns. När du skapar ett DataTable objekt Fill skapar åtgärden normalt endast metadata för kolumnnamn. Men om egenskapen MissingSchemaAction är inställd på AddWithKeyskapas även lämpliga primära nycklar och begränsningar.
DbDataAdapter Om objektet stöter på dubblettkolumner när det fyller i en DataTablegenereras namn för efterföljande kolumner med hjälp av mönstret "columnname1", "columnname2", "columnname3" och så vidare. Om inkommande data innehåller icke namngivna kolumner placeras de i DataSet enligt mönstret "Column1", "Column2" och så vidare.
Överlagringen av Fill det tar DataTable som en parameter endast hämtar det första resultatet. Använd en överlagring av Fill som tar DataSet som en parameter för att få flera resultat.
Du kan använda Fill metoden flera gånger på samma DataTable. Om det finns en primärnyckel sammanfogas inkommande rader med matchande rader som redan finns. Om det inte finns någon primärnyckel läggs inkommande rader till i DataTable.
Om SelectCommand returnerar resultatet av en OUTER JOIN, anger inte DataAdapter ett PrimaryKey värde för den resulterande DataTable. Du måste uttryckligen definiera den primära nyckeln för att säkerställa att dubbletter av rader matchas korrekt. Mer information finns i Definiera primära nycklar.
Note
När du hanterar batch-SQL-instruktioner som returnerar flera resultat hämtar implementeringen av FillSchema för .NET Framework-Data Provider för OLE DB schemainformation för endast det första resultatet. Om du vill hämta schemainformation för flera resultat använder du Fill med inställningen MissingSchemaAction till AddWithKey.
Anteckningar till arvingar
Den här överlagringen av metoden Fill(DataSet) är skyddad och är utformad för användning av en .NET Framework-dataprovider.