DbDataAdapter.Fill Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
| Nome | Descrizione |
|---|---|
| Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior) |
Aggiunge o aggiorna righe in un intervallo specificato nell'oggetto DataSet in modo che corrispondano a quelle nell'origine dati usando i DataSet nomi delle tabelle di origine e, la stringa di comando e il comportamento del comando. |
| Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior) |
Aggiunge o aggiorna righe in un intervallo specificato nell'oggetto DataSet in modo che corrispondano a quelle nell'origine dati usando i DataSet nomi e DataTable . |
| Fill(DataSet, String, IDataReader, Int32, Int32) |
Aggiunge o aggiorna righe in un intervallo specificato nell'oggetto DataSet in modo che corrispondano a quelle nell'origine dati usando i DataSetnomi , DataTablee IDataReader . |
| Fill(DataSet, Int32, Int32, String) |
Aggiunge o aggiorna righe in un intervallo specificato nell'oggetto DataSet in modo che corrispondano a quelle nell'origine dati usando i DataSet nomi e DataTable . |
| Fill(Int32, Int32, DataTable[]) |
Aggiunge o aggiorna righe in uno o più DataTable oggetti in modo che corrispondano a quelli nell'origine dati a partire dal record specificato e recuperando fino al numero massimo di record specificato. |
| Fill(DataTable) |
Aggiunge o aggiorna righe in un intervallo specificato nell'oggetto DataSet in modo che corrispondano a quelle nell'origine dati usando il DataTable nome. |
| Fill(DataTable, IDataReader) |
Aggiunge o aggiorna righe in un DataTable oggetto in modo che corrispondano a quelle nell'origine dati usando i nomi e IDataReader specificatiDataTable. |
| Fill(DataSet, String) |
Aggiunge o aggiorna righe nell'oggetto DataSet in modo che corrispondano a quelle nell'origine dati usando i DataSet nomi e DataTable . |
| Fill(DataSet) |
Aggiunge o aggiorna righe in DataSet. |
| Fill(DataTable, IDbCommand, CommandBehavior) |
Aggiunge o aggiorna righe in un DataTable oggetto in modo che corrispondano a quelle nell'origine dati usando l'oggetto specificato DataTableIDbCommand e CommandBehavior. |
Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- 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
Parametri
- startRecord
- Int32
Numero di record in base zero con cui iniziare.
- maxRecords
- Int32
Numero massimo di record da recuperare. Specificare 0 per recuperare tutti i record dopo il record iniziale.
- srcTable
- String
Nome della tabella di origine da utilizzare per il mapping delle tabelle.
- command
- IDbCommand
Istruzione SQL SELECT usata per recuperare righe dall'origine dati.
- behavior
- CommandBehavior
Uno dei CommandBehavior valori.
Restituisce
Numero di righe aggiunte o aggiornate correttamente in DataSet. Non sono incluse le righe interessate dalle istruzioni che non restituiscono righe.
Eccezioni
La tabella di origine non è valida.
Il startRecord parametro è minore di 0.
oppure
Il maxRecords parametro è minore di 0.
Commenti
Il maxRecords valore 0 ottiene tutti i record trovati dopo il record iniziale. Se maxRecords è maggiore del numero di righe rimanenti, vengono restituite solo le righe rimanenti e non viene generato alcun errore.
Il Fill metodo recupera le righe dall'origine dati utilizzando l'istruzione SELECT specificata da una proprietà associata SelectCommand . L'oggetto connessione associato all'istruzione SELECT deve essere valido, ma non deve essere aperto. Se la connessione viene chiusa prima Fill della chiamata, viene aperta per recuperare i dati, quindi chiusa. Se la connessione è aperta prima Fill della chiamata, rimane aperta.
L'operazione Fill aggiunge quindi le righe agli oggetti di destinazione DataTable in DataSet, creando gli DataTable oggetti se non esistono già. Quando si creano DataTable oggetti, l'operazione Fill in genere crea solo i metadati dei nomi di colonna. Tuttavia, se la MissingSchemaAction proprietà è impostata su AddWithKey, vengono create anche chiavi primarie e vincoli appropriati.
Se rileva colonne duplicate durante il DbDataAdapter popolamento di , DataTablegenera nomi per le colonne successive, usando il modello "columnname1", "columnname2", "columnname3" e così via. Se i dati in ingresso contengono colonne senza nome, vengono posizionate nell'oggetto DataSet in base al modello "Column1", "Column2" e così via. Quando vengono aggiunti più set di risultati a DataSet ogni set di risultati viene inserito in una tabella separata. I set di risultati aggiuntivi vengono denominati aggiungendo valori integrali al nome della tabella specificato, ad esempio "Table", "Table1", "Table2" e così via. Se l'app usa nomi di colonna e tabella, assicurarsi che non ci siano conflitti con questi modelli di denominazione.
Il Fill metodo supporta scenari in cui DataSet contiene più DataTable oggetti i cui nomi differiscono solo per caso. In tali situazioni, Fill esegue un confronto con distinzione tra maiuscole e minuscole per trovare la tabella corrispondente e crea una nuova tabella se non esiste alcuna corrispondenza esatta. Il codice C# seguente illustra questo comportamento.
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".
Se Fill viene chiamato e l'oggetto DataSet contiene solo un DataTable nome il cui nome differisce solo per caso, viene DataTable aggiornato. In questo scenario, il confronto non fa distinzione tra maiuscole e minuscole. Il codice C# seguente illustra questo comportamento.
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.
È possibile usare il Fill metodo più volte nello stesso DataTableoggetto . Se esiste una chiave primaria, le righe in ingresso vengono unite con righe corrispondenti già esistenti. Se non esiste alcuna chiave primaria, le righe in ingresso vengono aggiunte all'oggetto DataTable.
Se SelectCommand restituisce i risultati di un OUTER JOIN, DataAdapter non imposta un valore PrimaryKey per l'elemento risultante DataTable. È necessario definire in modo esplicito la chiave primaria per assicurarsi che le righe duplicate vengano risolte correttamente. Per altre informazioni, vedere Definizione delle chiavi primarie.
Annotazioni
Quando si gestiscono istruzioni SQL batch che restituiscono più risultati, l'implementazione di Fill e FillSchema per un provider di dati .NET Framework recupera le informazioni sullo schema solo per il primo risultato.
Note per gli eredi
Questo overload del Fill(DataSet) metodo è protetto ed è progettato per l'uso da parte di un provider di dati .NET Framework.
Vedi anche
Si applica a
Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- 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
Parametri
- startRecord
- Int32
Numero di record in base zero con cui iniziare.
- maxRecords
- Int32
Numero massimo di record da recuperare. Specificare 0 per recuperare tutti i record dopo il record iniziale.
- command
- IDbCommand
Oggetto IDbCommand eseguito per riempire gli DataTable oggetti.
- behavior
- CommandBehavior
Uno dei CommandBehavior valori.
Restituisce
Numero di righe aggiunte o aggiornate nelle tabelle dati.
Eccezioni
L'oggetto DataSet non è valido.
Impossibile trovare la connessione.
Il startRecord parametro è minore di 0.
oppure
Il maxRecords parametro è minore di 0.
Commenti
Il maxRecords valore 0 ottiene tutti i record trovati dopo il record iniziale. Se maxRecords è maggiore del numero di righe rimanenti, vengono restituite solo le righe rimanenti e non viene generato alcun errore.
Il Fill metodo recupera i dati dall'origine dati usando un'istruzione SELECT. L'oggetto IDbConnection associato all'istruzione SELECT deve essere valido, ma non deve essere aperto. Se l'oggetto IDbConnection viene chiuso prima Fill della chiamata, viene aperto per recuperare i dati, quindi chiuso. Se la connessione è aperta prima Fill della chiamata, rimane aperta.
Se un comando non restituisce righe, nessuna tabella viene aggiunta a DataSet, ma non viene generata alcuna eccezione.
Se l'oggetto rileva colonne duplicate durante il DbDataAdapter popolamento di , DataTablegenererà nomi per le colonne successive, usando il modello "columnname1", "columnname2", "columnname3" e così via. Se i dati in ingresso contengono colonne senza nome, vengono posizionate nell'oggetto DataSet in base al modello "Column1", "Column2" e così via.
Quando la query specificata restituisce più risultati, ogni set di risultati viene inserito in una tabella separata. I set di risultati aggiuntivi vengono denominati aggiungendo valori integrali al nome della tabella specificato, ad esempio "Table", "Table1", "Table2" e così via. Poiché non viene creata alcuna tabella per una query che non restituisce righe, se si elabora una query di inserimento seguita da una query di selezione, la tabella creata per la query di selezione sarà denominata "Table", perché è la prima tabella creata. Se l'app usa nomi di colonna e tabella, assicurarsi che non ci siano conflitti con questi modelli di denominazione.
Il Fill metodo supporta scenari in cui DataSet contiene più DataTable oggetti i cui nomi differiscono solo per caso. In tali situazioni, Fill esegue un confronto con distinzione tra maiuscole e minuscole per trovare la tabella corrispondente e crea una nuova tabella se non esiste alcuna corrispondenza esatta. Il codice C# seguente illustra questo comportamento.
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".
Se Fill viene chiamato e l'oggetto DataSet contiene solo un DataTable nome il cui nome differisce solo per caso, viene DataTable aggiornato. In questo scenario, il confronto non fa distinzione tra maiuscole e minuscole. Il codice C# seguente illustra questo comportamento.
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.
Se si verifica un errore o un'eccezione durante il popolamento delle tabelle dati, le righe aggiunte prima dell'occorrenza dell'errore rimangono nelle tabelle dati. Il resto dell'operazione viene interrotto.
Quando l'istruzione SELECT usata per popolare gli DataTable oggetti restituisce più risultati, ad esempio un'istruzione SQL batch, tenere presente quanto segue:
Quando si elaborano più risultati da un'istruzione SQL batch,
maxRecordssi applica solo al primo risultato. Lo stesso vale per le righe contenenti risultati con capitoli (solo provider di dati .NET Framework per OLE DB). Il risultato di primo livello è limitato damaxRecords, ma vengono aggiunte tutte le righe figlio.Se uno dei risultati contiene un errore, tutti i risultati successivi vengono ignorati.
Annotazioni
L'oggetto DataSet non conterrà più del numero di record indicati da maxRecords. Tuttavia, l'intero set di risultati generato dalla query viene comunque restituito dal server.
Note per gli eredi
Quando si esegue l'override Fill(DataSet) in una classe derivata, assicurarsi di chiamare il metodo della classe di Fill(DataSet) base.
Vedi anche
Si applica a
Fill(DataSet, String, IDataReader, Int32, Int32)
Aggiunge o aggiorna righe in un intervallo specificato nell'oggetto DataSet in modo che corrispondano a quelle nell'origine dati usando i DataSetnomi , DataTablee 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
Parametri
- dataReader
- IDataReader
Nome del IDataReader.
- startRecord
- Int32
Numero di record in base zero con cui iniziare.
- maxRecords
- Int32
Numero massimo di record da recuperare. Specificare 0 per recuperare tutti i record dopo il record iniziale.
Restituisce
Numero di righe aggiunte o aggiornate correttamente in DataSet. Non sono incluse le righe interessate dalle istruzioni che non restituiscono righe.
Eccezioni
Commenti
Il maxRecords valore 0 ottiene tutti i record trovati dopo il record iniziale. Se maxRecords è maggiore del numero di righe rimanenti, vengono restituite solo le righe rimanenti e non viene generato alcun errore.
Si applica a
Fill(DataSet, Int32, Int32, String)
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- 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
Parametri
- startRecord
- Int32
Numero di record in base zero con cui iniziare.
- maxRecords
- Int32
Numero massimo di record da recuperare. Specificare 0 per recuperare tutti i record dopo il record iniziale.
- srcTable
- String
Nome della tabella di origine da utilizzare per il mapping delle tabelle.
Restituisce
Numero di righe aggiunte o aggiornate correttamente in DataSet. Non sono incluse le righe interessate dalle istruzioni che non restituiscono righe.
Eccezioni
L'oggetto DataSet non è valido.
Impossibile trovare la connessione.
Il startRecord parametro è minore di 0.
oppure
Il maxRecords parametro è minore di 0.
Esempio
Nell'esempio seguente viene utilizzata la classe derivata , OleDbDataAdapter, per riempire un oggetto DataSet con 15 righe, a partire dalla riga 10, dalla tabella Categories . In questo esempio si presuppone che sia stato creato un OleDbDataAdapter oggetto e un oggetto 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
Commenti
Il maxRecords valore 0 ottiene tutti i record trovati dopo il record iniziale. Se maxRecords è maggiore del numero di righe rimanenti, vengono restituite solo le righe rimanenti e non viene generato alcun errore.
Se il comando select corrispondente è un'istruzione che restituisce più risultati, Fill si applica maxRecords solo al primo risultato.
Il Fill metodo recupera i dati dall'origine dati usando un'istruzione SELECT. L'oggetto IDbConnection associato all'istruzione SELECT deve essere valido, ma non deve essere aperto. Se l'oggetto IDbConnection viene chiuso prima Fill della chiamata, viene aperto per recuperare i dati e quindi chiuso. Se la connessione è aperta prima Fill della chiamata, rimane aperta.
Se un comando non restituisce righe, nessuna tabella viene aggiunta a DataSet, ma non viene generata alcuna eccezione.
Se l'oggetto rileva colonne duplicate durante il DbDataAdapter popolamento di , DataTablegenererà nomi per le colonne successive, usando il modello "columnname1", "columnname2", "columnname3" e così via. Se i dati in ingresso contengono colonne senza nome, vengono posizionate nell'oggetto DataSet in base al modello "Column1", "Column2" e così via.
Quando la query specificata restituisce più risultati, ogni set di risultati viene inserito in una tabella separata. I set di risultati aggiuntivi vengono denominati aggiungendo valori integrali al nome della tabella specificato, ad esempio "Table", "Table1", "Table2" e così via. Poiché non viene creata alcuna tabella per una query che non restituisce righe, se si elabora una query di inserimento seguita da una query di selezione, la tabella creata per la query di selezione è denominata "Table", perché è la prima tabella creata. Se l'app usa nomi di colonna e tabella, assicurarsi che non ci siano conflitti con questi modelli di denominazione.
Il Fill metodo supporta scenari in cui DataSet contiene più DataTable oggetti i cui nomi differiscono solo per caso. In tali situazioni, Fill esegue un confronto con distinzione tra maiuscole e minuscole per trovare la tabella corrispondente e crea una nuova tabella se non esiste alcuna corrispondenza esatta. Il codice C# seguente illustra questo comportamento.
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".
Se Fill viene chiamato e l'oggetto DataSet contiene solo un DataTable nome il cui nome differisce solo per caso, viene DataTable aggiornato. In questo scenario, il confronto non fa distinzione tra maiuscole e minuscole. Il codice C# seguente illustra questo comportamento.
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.
Se si verifica un errore o un'eccezione durante il popolamento delle tabelle dati, le righe aggiunte prima dell'occorrenza dell'errore rimangono nelle tabelle dati. Il resto dell'operazione viene interrotto.
Quando l'istruzione SELECT usata per popolare restituisce DataSet più risultati, ad esempio le istruzioni BATCH SQL, tenere presente quanto segue:
Quando si elaborano più risultati da un'istruzione SQL batch,
maxRecordssi applica solo al primo risultato. Lo stesso vale per le righe contenenti risultati con capitoli (solo provider di dati .NET Framework per OLE DB). Il risultato di primo livello è limitato damaxRecords, ma vengono aggiunte tutte le righe figlio.Se uno dei risultati contiene un errore, tutti i risultati successivi vengono ignorati e non aggiunti a DataSet.
Quando si usano chiamate successive Fill per aggiornare il contenuto di DataSet, è necessario soddisfare due condizioni:
L'istruzione SQL deve corrispondere a quella usata inizialmente per popolare .DataSet
Le informazioni sulla colonna Chiave devono essere presenti.
Se sono presenti informazioni sulla chiave primaria, tutte le righe duplicate verranno riconciliate e verranno visualizzate una sola volta in DataTable che corrisponde a DataSet. Le informazioni sulla chiave primaria possono essere impostate tramite FillSchema, specificando la PrimaryKey proprietà di DataTableo impostando la MissingSchemaAction proprietà su AddWithKey.
Se SelectCommand restituisce i risultati di un OUTER JOIN, DataAdapter non imposta un valore PrimaryKey per l'elemento risultante DataTable. È necessario definire in modo esplicito la chiave primaria per assicurarsi che le righe duplicate vengano risolte correttamente. Per altre informazioni, vedere Definizione delle chiavi primarie.
Annotazioni
Quando si gestiscono istruzioni SQL batch che restituiscono più risultati, l'implementazione di per il provider di FillSchema dati .NET Framework per OLE DB recupera le informazioni sullo schema solo per il primo risultato. Per recuperare informazioni sullo schema per più risultati, usare Fill con il MissingSchemaAction set su AddWithKey.
Annotazioni
L'oggetto DataSet non conterrà più del numero di record indicati da maxRecords. Tuttavia, l'intero set di risultati generato dalla query viene comunque restituito dal server.
Note per gli eredi
Quando si esegue l'override Fill(DataSet) in una classe derivata, assicurarsi di chiamare il metodo della classe di Fill(DataSet) base.
Vedi anche
Si applica a
Fill(Int32, Int32, DataTable[])
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
Aggiunge o aggiorna righe in uno o più DataTable oggetti in modo che corrispondano a quelli nell'origine dati a partire dal record specificato e recuperando fino al numero massimo di record specificato.
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
Parametri
- startRecord
- Int32
Numero di record in base zero con cui iniziare.
- maxRecords
- Int32
Numero massimo di record da recuperare. Specificare 0 per recuperare tutti i record dopo il record iniziale.
Restituisce
Numero di righe aggiunte o aggiornate correttamente negli DataTable oggetti . Questo valore non include righe interessate dalle istruzioni che non restituiscono righe.
Eccezioni
dataTables è null o una matrice vuota.
Commenti
Il maxRecords valore 0 ottiene tutti i record trovati dopo il record iniziale. Se maxRecords è maggiore del numero di righe rimanenti, vengono restituite solo le righe rimanenti e non viene generato alcun errore.
Il Fill metodo recupera le righe dall'origine dati utilizzando l'istruzione SELECT specificata da una proprietà associata SelectCommand . L'oggetto connessione associato all'istruzione SELECT deve essere valido, ma non deve essere aperto. Se la connessione viene chiusa prima Fill della chiamata, viene aperta per recuperare i dati e quindi viene chiusa. Se la connessione è aperta prima Fill della chiamata, rimane aperta.
L'operazione Fill aggiunge quindi le righe agli oggetti di destinazione DataTable in DataSet, creando gli DataTable oggetti se non esistono già. Quando si creano DataTable oggetti, l'operazione Fill in genere crea solo i metadati dei nomi di colonna. Tuttavia, se la MissingSchemaAction proprietà è impostata su AddWithKey, vengono create anche chiavi primarie e vincoli appropriati.
Se SelectCommand restituisce i risultati di un OUTER JOIN, DataAdapter non imposta un valore PrimaryKey per l'elemento risultante DataTable. È necessario definire in modo esplicito la chiave primaria per assicurarsi che le righe duplicate vengano risolte correttamente. Per altre informazioni, vedere Definizione delle chiavi primarie.
Se l'adattatore dati rileva colonne duplicate durante il popolamento di , DataTablegenera nomi per le colonne successive, usando il modello "columnname1", "columnname2", "columnname3" e così via. Se i dati in ingresso contengono colonne senza nome, vengono posizionate nell'oggetto DataSet in base al modello "Column1", "Column2" e così via. Quando vengono aggiunti più set di risultati a DataSet, ogni set di risultati viene inserito in una tabella separata. I set di risultati aggiuntivi vengono denominati aggiungendo valori integrali al nome della tabella specificato, ad esempio "Table", "Table1", "Table2" e così via. Se l'app usa nomi di colonna e tabella, assicurarsi che non ci siano conflitti con questi modelli di denominazione.
Quando l'istruzione SELECT usata per popolare restituisce DataSet più risultati, ad esempio istruzioni SQL batch, se uno dei risultati contiene un errore, tutti i risultati successivi vengono ignorati e non aggiunti a DataSet.
È possibile usare il Fill metodo più volte nello stesso DataTableoggetto . Se esiste una chiave primaria, le righe in ingresso vengono unite con righe corrispondenti già esistenti. Se non esiste alcuna chiave primaria, le righe in ingresso vengono aggiunte all'oggetto DataTable.
Annotazioni
Quando si gestiscono istruzioni SQL batch che restituiscono più risultati, l'implementazione di per il provider di FillSchema dati .NET Framework per OLE DB recupera le informazioni sullo schema solo per il primo risultato. Per recuperare informazioni sullo schema per più risultati, usare Fill con il MissingSchemaAction set su AddWithKey.
Vedi anche
Si applica a
Fill(DataTable)
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- 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
Parametri
Restituisce
Numero di righe aggiunte o aggiornate correttamente in DataSet. Non sono incluse le righe interessate dalle istruzioni che non restituiscono righe.
Eccezioni
La tabella di origine non è valida.
Commenti
Il Fill metodo recupera le righe dall'origine dati utilizzando l'istruzione SELECT specificata da una proprietà associata SelectCommand . L'oggetto connessione associato all'istruzione SELECT deve essere valido, ma non deve essere aperto. Se la connessione viene chiusa prima Fill della chiamata, viene aperta per recuperare i dati, quindi chiusa. Se la connessione è aperta prima Fill della chiamata, rimane aperta.
L'operazione Fill aggiunge quindi le righe agli oggetti di destinazione DataTable in DataSet, creando gli DataTable oggetti se non esistono già. Quando si creano DataTable oggetti, l'operazione Fill in genere crea solo i metadati dei nomi di colonna. Tuttavia, se la MissingSchemaAction proprietà è impostata su AddWithKey, vengono create anche chiavi primarie e vincoli appropriati.
Se rileva colonne duplicate durante il DbDataAdapter popolamento di , DataTablegenera nomi per le colonne successive, usando il modello "columnname1", "columnname2", "columnname3" e così via. Se i dati in ingresso contengono colonne senza nome, vengono posizionate nell'oggetto DataSet in base al modello "Column1", "Column2" e così via. Quando vengono aggiunti più set di risultati a DataSet ogni set di risultati viene inserito in una tabella separata.
L'overload di Fill che accetta DataTable come parametro ottiene solo il primo risultato. Usare un overload di Fill che accetta DataSet come parametro per ottenere più risultati.
Il Fill metodo supporta scenari in cui DataSet contiene più DataTable oggetti i cui nomi differiscono solo per caso. In tali situazioni, Fill esegue un confronto con distinzione tra maiuscole e minuscole per trovare la tabella corrispondente e crea una nuova tabella se non esiste alcuna corrispondenza esatta. Il codice C# seguente illustra questo comportamento.
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".
Se Fill viene chiamato e l'oggetto DataSet contiene solo un DataTable nome il cui nome differisce solo per caso, viene DataTable aggiornato. In questo scenario, il confronto non fa distinzione tra maiuscole e minuscole. Il codice C# seguente illustra questo comportamento.
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.
È possibile usare il Fill metodo più volte nello stesso DataTableoggetto . Se esiste una chiave primaria, le righe in ingresso vengono unite con righe corrispondenti già esistenti. Se non esiste alcuna chiave primaria, le righe in ingresso vengono aggiunte all'oggetto DataTable.
Se SelectCommand restituisce i risultati di un OUTER JOIN, DataAdapter non imposta un valore PrimaryKey per l'elemento risultante DataTable. È necessario definire in modo esplicito la chiave primaria per assicurarsi che le righe duplicate vengano risolte correttamente. Per altre informazioni, vedere Definizione delle chiavi primarie.
Annotazioni
Quando si gestiscono istruzioni SQL batch che restituiscono più risultati, l'implementazione di Fill e FillSchema per un provider di dati .NET Framework recupera le informazioni sullo schema solo per il primo risultato.
Note per gli eredi
Questo overload del Fill(DataSet) metodo è protetto ed è progettato per l'uso da parte di un provider di dati .NET Framework.
Vedi anche
Si applica a
Fill(DataTable, IDataReader)
Aggiunge o aggiorna righe in un DataTable oggetto in modo che corrispondano a quelle nell'origine dati usando i nomi e IDataReader specificatiDataTable.
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
Parametri
- dataReader
- IDataReader
Nome del IDataReader.
Restituisce
Numero di righe aggiunte o aggiornate correttamente in DataTable. Non sono incluse le righe interessate dalle istruzioni che non restituiscono righe.
Si applica a
Fill(DataSet, String)
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- 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
Parametri
- srcTable
- String
Nome della tabella di origine da utilizzare per il mapping delle tabelle.
Restituisce
Numero di righe aggiunte o aggiornate correttamente in DataSet. Non sono incluse le righe interessate dalle istruzioni che non restituiscono righe.
Eccezioni
La tabella di origine non è valida.
Esempio
Nell'esempio seguente viene utilizzata la classe derivata , OleDbDataAdapter, per riempire un oggetto DataSet con righe della tabella delle categorie. In questo esempio si presuppone che sia stato creato un OleDbDataAdapter oggetto e un oggetto 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
Commenti
Il Fill metodo recupera i dati dall'origine dati usando un'istruzione SELECT. L'oggetto IDbConnection associato al comando select deve essere valido, ma non deve essere aperto. Se l'oggetto IDbConnection viene chiuso prima Fill della chiamata, viene aperto per recuperare i dati, quindi chiuso. Se la connessione è aperta prima Fill della chiamata, rimane aperta.
Se un comando non restituisce righe, nessuna tabella viene aggiunta a DataSete non viene generata alcuna eccezione.
Se l'oggetto rileva colonne duplicate durante il DbDataAdapter popolamento di , DataTablegenererà i nomi per le colonne successive, usando il modello "columnname1", "columnname2", "columnname3" e così via. Se i dati in ingresso contengono colonne senza nome, vengono posizionate nell'oggetto DataSet in base al modello "Column1", "Column2" e così via.
Quando la query specificata restituisce più risultati, ogni set di risultati viene inserito in una tabella separata. I set di risultati aggiuntivi vengono denominati aggiungendo valori integrali al nome della tabella specificato, ad esempio "Table", "Table1", "Table2" e così via. Poiché non viene creata alcuna tabella per una query che non restituisce righe, se si elabora una query di inserimento seguita da una query di selezione, la tabella creata per la query di selezione sarà denominata "Table", perché è la prima tabella creata. Se l'app usa nomi di colonna e tabella, assicurarsi che non ci siano conflitti con questi modelli di denominazione.
Il Fill metodo supporta scenari in cui DataSet contiene più DataTable oggetti i cui nomi differiscono solo per caso. In tali situazioni, Fill esegue un confronto con distinzione tra maiuscole e minuscole per trovare la tabella corrispondente e crea una nuova tabella se non esiste alcuna corrispondenza esatta. Il codice C# seguente illustra questo comportamento.
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".
Se Fill viene chiamato e l'oggetto DataSet contiene solo un DataTable nome il cui nome differisce solo per caso, viene DataTable aggiornato. In questo scenario, il confronto non fa distinzione tra maiuscole e minuscole. Il codice C# seguente illustra questo comportamento.
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.
Se si verifica un errore o un'eccezione durante il popolamento delle tabelle dati, le righe aggiunte prima dell'occorrenza dell'errore rimangono nelle tabelle dati. Il resto dell'operazione viene interrotto.
Quando l'istruzione SELECT usata per popolare restituisce DataSet più risultati, ad esempio un'istruzione SQL batch, tenere presente quanto segue:
- Se uno dei risultati contiene un errore, tutti i risultati successivi vengono ignorati e non aggiunti a DataSet.
Quando si usano chiamate successive Fill per aggiornare il contenuto di DataSet, è necessario soddisfare due condizioni:
L'istruzione SQL deve corrispondere a quella usata inizialmente per popolare .DataSet
Le informazioni sulla colonna Chiave devono essere presenti. Se sono presenti informazioni sulla chiave primaria, tutte le righe duplicate vengono riconciliate e vengono visualizzate una sola volta in DataTable che corrisponde a DataSet. Le informazioni sulla chiave primaria possono essere impostate tramite FillSchema, specificando la PrimaryKey proprietà di DataTableo impostando la MissingSchemaAction proprietà su
AddWithKey.
Se SelectCommand restituisce i risultati di un OUTER JOIN, DataAdapter non imposta un valore PrimaryKey per l'elemento risultante DataTable. È necessario definire in modo esplicito la chiave primaria per assicurarsi che le righe duplicate vengano risolte correttamente. Per altre informazioni, vedere Definizione delle chiavi primarie.
Annotazioni
Quando si gestiscono istruzioni SQL batch che restituiscono più risultati, l'implementazione di per il provider di FillSchema dati .NET Framework per OLE DB recupera le informazioni sullo schema solo per il primo risultato. Per recuperare informazioni sullo schema per più risultati, usare Fill con il MissingSchemaAction set su AddWithKey.
Note per gli eredi
Quando si esegue l'override Fill(DataSet) in una classe derivata, assicurarsi di chiamare il metodo della classe di Fill(DataSet) base.
Vedi anche
Si applica a
Fill(DataSet)
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
Aggiunge o aggiorna righe in 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
Parametri
Restituisce
Numero di righe aggiunte o aggiornate correttamente in DataSet. Non sono incluse le righe interessate dalle istruzioni che non restituiscono righe.
Implementazioni
Commenti
Il Fill metodo recupera i dati dall'origine dati usando un'istruzione SELECT. L'oggetto IDbConnection associato al comando select deve essere valido, ma non deve essere aperto. Se l'oggetto IDbConnection viene chiuso prima Fill della chiamata, viene aperto per recuperare i dati e quindi chiuso. Se la connessione è aperta prima Fill della chiamata, rimane aperta.
Se si verifica un errore o un'eccezione durante il popolamento delle tabelle dati, le righe aggiunte prima dell'occorrenza dell'errore rimangono nelle tabelle dati. Il resto dell'operazione viene interrotto.
Se un comando non restituisce righe, nessuna tabella viene aggiunta a DataSete non viene generata alcuna eccezione.
Se l'oggetto rileva colonne duplicate durante il DbDataAdapter popolamento di , DataTablegenera nomi per le colonne successive usando il modello "columnname1", "columnname2", "columnname3" e così via. Se i dati in ingresso contengono colonne senza nome, vengono posizionate nell'oggetto DataSet in base al modello "Column1", "Column2" e così via.
Quando la query specificata restituisce più risultati, il set di risultati per ogni query che restituisce una riga viene inserito in una tabella separata. I set di risultati aggiuntivi vengono denominati aggiungendo valori integrali al nome della tabella specificato, ad esempio "Table", "Table1", "Table2" e così via. Poiché non viene creata alcuna tabella per una query che non restituisce righe, se si elabora una query di inserimento seguita da una query di selezione, la tabella creata per la query di selezione è denominata "Table" perché è la prima tabella creata. Se l'app usa nomi di colonna e tabella, assicurarsi che non ci siano conflitti con questi modelli di denominazione.
Quando l'istruzione SELECT usata per popolare restituisce DataSet più risultati, ad esempio istruzioni SQL batch, se uno dei risultati contiene un errore, tutti i risultati successivi vengono ignorati e non vengono aggiunti a DataSet.
Quando si usano chiamate successive Fill per aggiornare il contenuto di DataSet, è necessario soddisfare due condizioni:
L'istruzione SQL deve corrispondere a quella usata inizialmente per popolare .DataSet
Le informazioni sulla colonna Chiave devono essere presenti.
Se sono presenti informazioni sulla chiave primaria, tutte le righe duplicate vengono riconciliate e vengono visualizzate una sola volta in DataTable che corrisponde a DataSet. Le informazioni sulla chiave primaria possono essere impostate tramite FillSchema, specificando la PrimaryKey proprietà di DataTableo impostando la MissingSchemaAction proprietà su AddWithKey.
Se SelectCommand restituisce i risultati di un OUTER JOIN, DataAdapter non imposta un valore PrimaryKey per l'elemento risultante DataTable. È necessario definire in modo esplicito la chiave primaria per assicurarsi che le righe duplicate vengano risolte correttamente. Per altre informazioni, vedere Definizione delle chiavi primarie.
Annotazioni
Quando si gestiscono istruzioni SQL batch che restituiscono più risultati, l'implementazione di per il provider di FillSchema dati .NET Framework per OLE DB recupera le informazioni sullo schema solo per il primo risultato. Per recuperare informazioni sullo schema per più risultati, usare Fill con il MissingSchemaAction set su AddWithKey.
Vedi anche
Si applica a
Fill(DataTable, IDbCommand, CommandBehavior)
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
- Origine:
- DbDataAdapter.cs
Aggiunge o aggiorna righe in un DataTable oggetto in modo che corrispondano a quelle nell'origine dati usando l'oggetto specificato DataTableIDbCommand e 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
Parametri
- command
- IDbCommand
Istruzione SQL SELECT usata per recuperare righe dall'origine dati.
- behavior
- CommandBehavior
Uno dei CommandBehavior valori.
Restituisce
Numero di righe aggiunte o aggiornate correttamente in DataTable. Non sono incluse le righe interessate dalle istruzioni che non restituiscono righe.
Commenti
Il Fill metodo recupera le righe dall'origine dati utilizzando l'istruzione SELECT specificata da una proprietà associata SelectCommand . L'oggetto connessione associato all'istruzione SELECT deve essere valido, ma non deve essere aperto. Se la connessione viene chiusa prima Fill della chiamata, viene aperta per recuperare i dati e quindi chiusa. Se la connessione è aperta prima Fill della chiamata, rimane aperta.
L'operazione Fill aggiunge quindi le righe all'oggetto di destinazione DataTable specificato in DataSet, creando l'oggetto DataTable se non esiste già. Quando si crea un DataTable oggetto, l'operazione Fill in genere crea solo i metadati del nome di colonna. Tuttavia, se la MissingSchemaAction proprietà è impostata su AddWithKey, vengono create anche chiavi primarie e vincoli appropriati.
Se l'oggetto rileva colonne duplicate durante il DbDataAdapter popolamento di , DataTablegenererà nomi per le colonne successive, usando il modello "columnname1", "columnname2", "columnname3" e così via. Se i dati in ingresso contengono colonne senza nome, vengono posizionate nell'oggetto DataSet in base al modello "Column1", "Column2" e così via.
L'overload di Fill che accetta DataTable come parametro ottiene solo il primo risultato. Usare un overload di Fill che accetta DataSet come parametro per ottenere più risultati.
È possibile usare il Fill metodo più volte nello stesso DataTableoggetto . Se esiste una chiave primaria, le righe in ingresso vengono unite con righe corrispondenti già esistenti. Se non esiste alcuna chiave primaria, le righe in ingresso vengono aggiunte all'oggetto DataTable.
Se SelectCommand restituisce i risultati di un OUTER JOIN, DataAdapter non imposta un valore PrimaryKey per l'elemento risultante DataTable. È necessario definire in modo esplicito la chiave primaria per assicurarsi che le righe duplicate vengano risolte correttamente. Per altre informazioni, vedere Definizione delle chiavi primarie.
Annotazioni
Quando si gestiscono istruzioni SQL batch che restituiscono più risultati, l'implementazione di per il provider di FillSchema dati .NET Framework per OLE DB recupera le informazioni sullo schema solo per il primo risultato. Per recuperare informazioni sullo schema per più risultati, usare Fill con il MissingSchemaAction set su AddWithKey.
Note per gli eredi
Questo overload del Fill(DataSet) metodo è protetto ed è progettato per l'uso da parte di un provider di dati .NET Framework.