Partager via


Méthode Load

Vous pouvez utiliser la méthode Load pour charger un objet DataTable de lignes d'une source de données. Il s'agit d'une méthode surchargée qui, sous sa forme la plus simple, accepte un simple paramètre, DataReader. Sous cette forme, il charge simplement le DataTable avec des lignes. Si vous le souhaitez, vous pouvez spécifier le LoadOption paramètre pour contrôler la façon dont les données sont ajoutées à DataTable.

Le LoadOption paramètre est particulièrement utile dans les cas où le DataTable contient déjà des lignes de données, car il décrit comment les données entrantes de la source de données seront combinées avec les données déjà contenues dans la table. Par exemple, PreserveCurrentValues (la valeur par défaut) spécifie que, dans les cas où une ligne est marquée comme Added dans dataTable, la Original valeur ou chaque colonne est définie sur le contenu de la ligne correspondante à partir de la source de données. La Current valeur conserve les valeurs attribuées lors de l’ajout de la ligne, et la RowState ligne est définie sur Modification.

Le tableau suivant donne une brève description des valeurs d'énumération LoadOption.

Valeur LoadOption Descriptif
RemplacerRow Si les lignes entrantes ont la même PrimaryKey valeur qu’une ligne déjà dans DataTable, les Original valeurs de Current chaque colonne sont remplacées par les valeurs de la ligne entrante et la RowState propriété est définie sur Inchangé.

Les lignes de la source de données qui n’existent pas déjà dans le fichier DataTable sont ajoutées avec une RowState valeur inchangée.

Cette option actualise en effet le contenu de la DataTable source de données afin qu’il corresponde au contenu de la source de données.
PreserveCurrentValues (par défaut) Si les lignes entrantes ont la même PrimaryKey valeur qu’une ligne déjà dans DataTable, la Original valeur est définie sur le contenu de la ligne entrante et la Current valeur n’est pas modifiée.

Si l’objet RowState est Added ou modifié, il est défini sur Modified.

Si la RowState valeur a été supprimée, elle reste supprimée.

Les lignes de la source de données qui n’existent pas déjà dans le fichier DataTable sont ajoutées, et l'état de RowState est défini sur Inchangé.
UpdateCurrentValues Si les lignes entrantes ont la même PrimaryKey valeur que la ligne déjà dans DataTable, la Current valeur est copiée dans la Original valeur et la Current valeur est ensuite définie sur le contenu de la ligne entrante.

Si le RowState dans le DataTable a été ajouté, le RowState reste ajouté. Pour les lignes marquées comme Modified ou supprimées, la valeur RowState est Modifiée.

Les lignes de la source de données qui n'existent pas déjà dans le DataTable sont ajoutées, et le RowState est défini sur Ajouté.

L’exemple suivant utilise la Load méthode pour afficher une liste d’anniversaires pour les employés de la Northwind base de données.

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

Voir aussi