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