Load メソッドThe Load Method

Load メソッドを使用して、データ ソースの行を DataTable に読み込むことができます。You can use the Load method to load a DataTable with rows from a data source. これはオーバーロードされたメソッドで、最も単純な形式で単一の DataReader パラメーターを受け取ります。This is an overloaded method which, in its simplest form, accepts a single parameter, a DataReader. この形式により、このメソッドでは DataTable に対する行の読み込みのみが行われます。In this form, it simply loads the DataTable with rows. または、LoadOption パラメーターを指定して DataTable へのデータの追加方法を制御することもできます。Optionally, you can specify the LoadOption parameter to control how data is added to the DataTable.

LoadOption パラメーターは、データ ソースからの受信データをテーブルに既に格納されているデータと組み合わせる方法が記述されているため、DataTable に既にデータ行が含まれている場合に特に便利です。The LoadOption parameter is particularly useful in cases where the DataTable already contains rows of data, because it describes how incoming data from the data source will be combined with the data already in the table. たとえば、PreserveCurrentValues (既定値) は、DataTable の行が Added としてマークされ、データ ソースの行に一致する内容に対して Original 値または各列が設定されている場合に指定します。For example, PreserveCurrentValues (the default) specifies that in cases where a row is marked as Added in the DataTable, the Original value or each column is set to the contents of the matching row from the data source. Current 値は、行が追加されたときに割り当てられた値が保持され、その行の RowStateChanged に設定されます。The Current value will retain the values assigned when the row was added, and the RowState of the row will be set to Changed.

LoadOption 列挙値の簡単な説明を次の表に示します。The following table gives a short description of the LoadOption enumeration values.

LoadOption の値LoadOption value 説明Description
OverwriteRowOverwriteRow 読み込まれる行と DataTable に既に存在する行で PrimaryKey 値が同じ場合、各列の Original 値と Current 値は読み込まれる行の値に置き換えられ、RowState プロパティは Unchanged に設定されます。If incoming rows have the same PrimaryKey value as a row already in the DataTable, the Original and Current values of each column are replaced with the values in the incoming row, and the RowState property is set to Unchanged.

DataTable に存在していなかった行がデータ ソースから読み込まれ、その行の RowState 値は Unchanged に設定されます。Rows from the data source that do not already exist in the DataTable are added with a RowState value of Unchanged.

このオプションは DataTable の内容を更新して、データ ソースの内容と一致するようにします。This option in effect refreshes the contents of the DataTable so that it matches the contents of the data source.
PreserveCurrentValues (既定値)PreserveCurrentValues (default) 読み込まれる行と DataTable に既に存在する行の PrimaryKey 値が同じ場合、Original 値には読み込まれる行の内容が設定されますが、Current 値は変更されません。If incoming rows have the same PrimaryKey value as a row already in the DataTable, the Original value is set to the contents of the incoming row, and the Current value is not changed.

RowStateAdded または Modified の場合、この値は Modified に設定されます。If the RowState is Added or Modified, it is set to Modified.

RowStateDeleted であった場合、この値は Deleted のままとなります。If the RowState was Deleted, it remains Deleted.

DataTable に存在していなかった行がデータ ソースから読み込まれ、その行の RowStateUnchanged に設定されます。Rows from the data source that do not already exist in the DataTable are added, and the RowState is set to Unchanged.
UpdateCurrentValuesUpdateCurrentValues 読み込まれる行と DataTable に既に存在する行の PrimaryKey 値が同じ場合、Current 値が Original 値にコピーされ、Current 値には読み込まれる行の内容が設定されます。If incoming rows have the same PrimaryKey value as the row already in the DataTable, the Current value is copied to the Original value, and the Current value is then set to the contents of the incoming row.

DataTableRowStateAdded の場合、RowStateAdded のままとなります。If the RowState in the DataTable was Added, the RowState remains Added. Modified または Deleted としてマークされた行の RowStateModified になります。For rows marked as Modified or Deleted, the RowState is Modified.

DataTable に存在していなかった行がデータ ソースから読み込まれ、その行の RowStateAdded に設定されます。Rows from the data source that do not already exist in the DataTable are added, and the RowState is set to Added.

Load メソッドを使用して Northwind データベースに従業員の誕生日リストを表示する例を次に示します。The following sample uses the Load method to display a list of birthdays for the employees in the Northwind database.

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  

関連項目See also