Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo DataSet.Load (IDataReader, LoadOption, DataTable[])

 

Data di pubblicazione: ottobre 2016

Riempie una DataSet con i valori da un'origine dati utilizzando la classe fornita IDataReader, utilizzando una matrice di DataTable le istanze di fornire le informazioni dello schema e spazio dei nomi.

Spazio dei nomi:   System.Data
Assembly:  System.Data (in System.Data.dll)

public void Load(
	IDataReader reader,
	LoadOption loadOption,
	params DataTable[] tables
)

Parametri

reader
Type: System.Data.IDataReader

Un IDataReader che fornisce uno o più set di risultati.

loadOption
Type: System.Data.LoadOption

Un valore compreso il LoadOption enumerazione che indica come righe già nel DataTable istanze all'interno di DataSet verranno combinati con le righe in ingresso che condividono la stessa chiave primaria.

tables
Type: System.Data.DataTable[]

Matrice di DataTable istanze, da cui il Load Recupera le informazioni di nome e spazio dei nomi. Ognuna di queste tabelle deve essere un membro del DataTableCollection contenute da questo DataSet.

Il Load metodo fornisce una tecnica per riempire una singola DataTable i dati, recuperati da un IDataReader istanza. Questo metodo fornisce la stessa funzionalità, ma consente di caricare più set di risultati da un IDataReader in più tabelle all'interno di un DataSet.

System_CAPS_noteNota

L'operazione di caricamento avrà esito negativo con un InvalidOperationException Se una qualsiasi delle colonne di origine dati in ingresso reader sono le colonne calcolate.

Il loadOption parametro consente di specificare come desidera che i dati importati per interagire con i dati esistenti e può essere uno dei valori di LoadOption enumerazione. Vedere la documentazione per il DataTableLoad metodo per ulteriori informazioni sull'utilizzo di questo parametro.

Il tables parametro consente di specificare una matrice di DataTable istanze, che indica l'ordine delle tabelle corrispondenti a ogni gruppo di risultati caricato dal lettore. Il Loadmetodo compila ogni fornito DataTable istanza con i dati da un singolo set di risultati da lettore dati di origine. Dopo ogni set di risultati, il Loadmetodo passa al set all'interno del lettore, fino a quando non sono presenti dei gruppi di risultati successivo.

Lo schema di risoluzione nome per questo metodo è uguale a quello seguito dal Fill metodo la DbDataAdapter classe.

Nell'esempio seguente crea un nuovo DataSet, aggiunge due DataTable istanze per il DataSet, e quindi riempie il DataSet utilizzando il Load (metodo), il recupero dei dati da un DataTableReader che contiene due set di risultati. Infine, viene visualizzato il contenuto delle tabelle nella finestra della console.

static void Main()
{
    DataSet dataSet = new DataSet();

    DataTable customerTable = new DataTable();
    DataTable productTable = new DataTable();

    // This information is cosmetic, only.
    customerTable.TableName = "Customers";
    productTable.TableName = "Products";

    // Add the tables to the DataSet:
    dataSet.Tables.Add(customerTable);
    dataSet.Tables.Add(productTable);

    // Load the data into the existing DataSet. 
    DataTableReader reader = GetReader();
    dataSet.Load(reader, LoadOption.OverwriteChanges,
        customerTable, productTable);

    // Print out the contents of each table:
    foreach (DataTable table in dataSet.Tables)
    {
        PrintColumns(table);
    }

    Console.WriteLine("Press any key to continue.");
    Console.ReadKey();
}

private static DataTable GetCustomers()
{
    // Create sample Customers table.
    DataTable table = new DataTable();
    table.TableName = "Customers";

    // Create two columns, ID and Name.
    DataColumn idColumn = table.Columns.Add("ID", typeof(int));
    table.Columns.Add("Name", typeof(string));

    // Set the ID column as the primary key column.
    table.PrimaryKey = new DataColumn[] { idColumn };

    table.Rows.Add(new object[] { 0, "Mary" });
    table.Rows.Add(new object[] { 1, "Andy" });
    table.Rows.Add(new object[] { 2, "Peter" });
    table.AcceptChanges();
    return table;
}

private static DataTable GetProducts()
{
    // Create sample Products table.
    DataTable table = new DataTable();
    table.TableName = "Products";

    // Create two columns, ID and Name.
    DataColumn idColumn = table.Columns.Add("ID",
        typeof(int));
    table.Columns.Add("Name", typeof(string));

    // Set the ID column as the primary key column.
    table.PrimaryKey = new DataColumn[] { idColumn };

    table.Rows.Add(new object[] { 0, "Wireless Network Card" });
    table.Rows.Add(new object[] { 1, "Hard Drive" });
    table.Rows.Add(new object[] { 2, "Monitor" });
    table.Rows.Add(new object[] { 3, "CPU" });
    table.AcceptChanges();
    return table;
}

private static void PrintColumns(DataTable table)
{
    Console.WriteLine();
    Console.WriteLine(table.TableName);
    Console.WriteLine("=========================");
    // Loop through all the rows in the table:
    foreach (DataRow row in table.Rows)
    {
        for (int i = 0; i < table.Columns.Count; i++)
        {
            Console.Write(row[i] + " ");
        }
        Console.WriteLine();
    }
}

private static DataTableReader GetReader()
{
    // Return a DataTableReader containing multiple
    // result sets, just for the sake of this demo.
    DataSet dataSet = new DataSet();
    dataSet.Tables.Add(GetCustomers());
    dataSet.Tables.Add(GetProducts());
    return dataSet.CreateDataReader();
}

.NET Framework
Disponibile da 2.0
Torna all'inizio
Mostra: