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 DataTable řádky. Volitelně můžete zadat LoadOption parametr, který určuje, jak se data přidají do tabulky DataTable.

Parametr LoadOption je zvlášť užitečný v případech, kdy DataTable již obsahuje řádky dat, protože popisuje, jak se příchozí data ze zdroje dat zkombinují s daty, která už jsou v tabulce. Například PreserveCurrentValues (výchozí) určuje, že v případech, kdy je řádek označen jako Added v tabulce DataTable, Original je hodnota nebo každý sloupec nastaven na obsah odpovídajícího řádku ze zdroje dat. Hodnota Current zachová hodnoty přiřazené při přidání řádku a RowState řádek se nastaví na Hodnotu Změněno.

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

Hodnota LoadOption Popis
PřepsatŘádek Pokud mají příchozí řádky stejnou PrimaryKey hodnotu jako řádek již v tabulce DataTable, Original nahradí se hodnoty Current každého sloupce hodnotami v příchozím řádku a RowState vlastnost je nastavena na Beze změny.

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

Tato možnost aktualizuje obsah DataTable tak, aby odpovídal obsahu zdroje dat.
PreserveCurrentValues (výchozí) Pokud mají příchozí řádky stejnou PrimaryKey hodnotu jako řádek, který už je v tabulce DataTable, Original nastaví se hodnota na obsah příchozího řádku a Current hodnota se nezmění.

RowState Pokud je Added nebo změněno, je nastaveno na Změněno.

Pokud bylo RowStateodstraněno, zůstane odstraněno.

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

Pokud je RowStateDataTable v , RowState zůstane přidán. U řádků označených jako Modified nebo OdstraněnoRowState se změní.

Řádky ze zdroje dat, které ještě v DataTable neexistují, 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 zaměstnanců v Northwind databázi.

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é