Metoda Load

Metodu Load můžete použít k načtení DataTable řádků ze zdroje dat. Jedná se o přetíženou metodu, která v nejjednodušší podobě přijímá jeden parametr DataReader. V tomto formuláři jednoduše načte tabulku DataTable s řádky. Volitelně můžete zadat parametr LoadOption , který určuje, jak se data přidají do tabulky DataTable.

Parametr LoadOption je zvláště užitečný v případech, kdy tabulka DataTable již obsahuje řádky dat, protože popisuje, jak se příchozí data ze zdroje dat zkombinují s daty již v tabulce. Například PreserveCurrentValues (výchozí) určuje, že v případech, kdy je řádek označen jako Přidaný v tabulce DataTable, původní hodnota nebo každý sloupec je nastaven na obsah odpovídajícího řádku ze zdroje dat. Aktuální hodnota zachová hodnoty přiřazené při přidání řádku a vlastnost RowState řádku bude nastavena na Hodnotu Změněno.

Následující tabulka obsahuje krátký popis hodnot výčtu LoadOption .

Hodnota LoadOption Popis
Přepsatrow Pokud mají příchozí řádky stejnou hodnotu PrimaryKey jako řádek již v Tabulce DataTable, původní a aktuální hodnoty každého sloupce jsou nahrazeny hodnotami v příchozím řádku a vlastnost RowState je nastavena na Beze změny.

Řádky ze zdroje dat, které ještě neexistují v tabulce DataTable, se přidají s hodnotou RowState beze změny.

Tato možnost aktualizuje obsah tabulky DataTable tak, aby odpovídal obsahu zdroje dat.
PreserveCurrentValues (výchozí) Pokud mají příchozí řádky stejnou hodnotu PrimaryKey jako řádek již v tabulce DataTable, původní hodnota je nastavena na obsah příchozího řádku a aktuální hodnota se nezmění.

Pokud je vlastnost RowState přidána nebo změněna, je nastavena na Hodnotu Změněno.

Pokud byl stav řádku odstraněn, zůstane odstraněný.

Řádky ze zdroje dat, které ještě neexistují v tabulce DataTable , jsou přidány a RowState je nastaven na Beze změny.
UpdateCurrentValues Pokud mají příchozí řádky stejnou hodnotu PrimaryKey jako řádek již v tabulce DataTable, zkopíruje se aktuální hodnota do původní hodnoty a aktuální hodnota je pak nastavena na obsah příchozího řádku.

Pokud byl v tabulce DataTable přidán ŘádekState, zůstane Přidaný. U řádků označených jako Změněno nebo Odstraněno se změní Stav řádku.

Řádky ze zdroje dat, které ještě neexistují v tabulce DataTable , jsou přidány a RowState je nastavena na Přidáno.

Následující ukázka používá metodu Load k zobrazení seznamu narozenin pro zaměstnance v databázi Northwind .

Private Sub LoadBirthdays(ByVal connectionString As String)  
    ' Assumes that connectionString is a valid connection string  
    ' to the Northwind database on SQL Server.  
    Dim queryString As String = _  
    "SELECT LastName, FirstName, BirthDate " & _  
      " FROM dbo.Employees " & _  
      "ORDER BY BirthDate, LastName, FirstName"  
  
    ' Open and fill a DataSet.
    Dim adapter As SqlDataAdapter = New SqlDataAdapter( _  
        queryString, connectionString)  
    Dim employees As New DataSet  
    adapter.Fill(employees, "Employees")  
  
    ' Create a SqlDataReader for use with the Load Method.  
    Dim reader As DataTableReader = employees.GetDataReader()  
  
    ' Create an instance of DataTable and assign the first  
    ' DataTable in the DataSet.Tables collection to it.  
    Dim dataTableEmp As DataTable = employees.Tables(0)  
  
    ' Fill the DataTable with data by calling Load and  
    ' passing the SqlDataReader.  
    dataTableEmp.Load(reader, LoadOption.OverwriteRow)  
  
    ' Loop through the rows collection and display the values  
    ' in the console window.  
    Dim employeeRow As DataRow  
    For Each employeeRow In dataTableEmp.Rows  
        Console.WriteLine("{0:MM\\dd\\yyyy}" & ControlChars.Tab & _  
          "{1}, {2}", _  
          employeeRow("BirthDate"), _  
          employeeRow("LastName"), _  
          employeeRow("FirstName"))  
    Next employeeRow  
  
    ' Keep the window opened to view the contents.  
    Console.ReadLine()  
End Sub  

Viz také