Condividi tramite


DbDataAdapter.Fill Metodo

Definizione

Riempie un DataSet oggetto o un oggetto DataTable.

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

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.

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

dataSet
DataSet

Oggetto DataSet da compilare con record e, se necessario, schema.

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

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 .

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

dataTables
DataTable[]

Oggetti DataTable da riempire dall'origine dati.

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.

La tabella di origine non è valida.

oppure

La connessione non è valida.

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, maxRecords si 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 da maxRecords, 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

dataSet
DataSet

Oggetto DataSet da compilare con record e, se necessario, schema.

srcTable
String

Nome dell'oggetto DataTable da utilizzare per il mapping delle tabelle.

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

startRecord è minore di 0.

oppure

maxRecords è 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.

Si applica a

Fill(DataSet, Int32, Int32, String)

Origine:
DbDataAdapter.cs
Origine:
DbDataAdapter.cs
Origine:
DbDataAdapter.cs
Origine:
DbDataAdapter.cs
Origine:
DbDataAdapter.cs

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 .

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

dataSet
DataSet

Oggetto DataSet da compilare con record e, se necessario, schema.

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.

La tabella di origine non è valida.

oppure

La connessione non è valida.

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, maxRecords si 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 da maxRecords, 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:

  1. L'istruzione SQL deve corrispondere a quella usata inizialmente per popolare .DataSet

  2. 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.

dataTables
DataTable[]

Oggetti DataTable da riempire dall'origine dati.

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.

startRecord è minore di 0.

oppure

maxRecords è 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 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

Aggiunge o aggiorna righe in un intervallo specificato nell'oggetto DataSet in modo che corrispondano a quelle nell'origine dati usando il DataTable nome.

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

dataTable
DataTable

Nome dell'oggetto DataTable 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.

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

dataTable
DataTable

Oggetto DataTable da compilare con record e, se necessario, schema.

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

Aggiunge o aggiorna righe nell'oggetto DataSet in modo che corrispondano a quelle nell'origine dati usando i DataSet nomi e DataTable .

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

dataSet
DataSet

Oggetto DataSet da compilare con record e, se necessario, schema.

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:

  1. L'istruzione SQL deve corrispondere a quella usata inizialmente per popolare .DataSet

  2. 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

dataSet
DataSet

Oggetto DataSet da compilare con record e, se necessario, schema.

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:

  1. L'istruzione SQL deve corrispondere a quella usata inizialmente per popolare .DataSet

  2. 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

dataTable
DataTable

Oggetto DataTable da compilare con record e, se necessario, schema.

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.

Vedi anche

Si applica a