次の方法で共有


DataViewRowState 列挙体

DataRow 内のデータのバージョンを記述します。

この列挙体には、メンバ値をビットごとに演算するための FlagsAttribute 属性が含まれています。

<Flags>
<Serializable>
Public Enum DataViewRowState
[C#]
[Flags]
[Serializable]
public enum DataViewRowState
[C++]
[Flags]
[Serializable]
__value public enum DataViewRowState
[JScript]
public
   Flags
 Serializable
enum DataViewRowState

解説

DataViewRowState 値は、 DataRow からデータの特定のバージョンを取得するため、またはどのバージョンが存在するかを確認するために使用します。

DataViewRowStateFilter プロパティを設定して、データのどのバージョンを表示するかを指定します。

値とブール型の OR 演算子を使用すると、1 つ以上のバージョンを取得できます。

DataTableSelect メソッド内で DataViewRowState を使用します。

メンバ

メンバ名 説明
Added

.NET Compact Framework でもサポート。

新しい行。 4
CurrentRows

.NET Compact Framework でもサポート。

変更されていない行、新しい行、および変更された行を含む現在の行。 22
Deleted

.NET Compact Framework でもサポート。

削除された行。 8
ModifiedCurrent

.NET Compact Framework でもサポート。

元のデータの変更後のバージョン (ModifiedOriginal のトピックを参照) である現在のバージョン。 16
ModifiedOriginal

.NET Compact Framework でもサポート。

元のバージョン。既に変更されていて ModifiedCurrent として使用できます。 32
None

.NET Compact Framework でもサポート。

なし。 0
OriginalRows

.NET Compact Framework でもサポート。

変更されていない行と削除された行を含む元の行。 42
Unchanged

.NET Compact Framework でもサポート。

変更されていない行。 2

使用例

[Visual Basic, C#, C++] 1 つの列で DataTable を作成する例を次に示します。データを変更し、 DataViewRowState に応じて異なる行セットを表示するように、 DataViewRowStateFilter を設定します。

 
Private Sub DemonstrateRowState()
    Dim i As Integer
    ' Create a DataTable with one column.
    Dim myTable As New DataTable("myTable")
    Dim myColumn As New DataColumn("myColumn")
    myTable.Columns.Add(myColumn)
    ' Add ten rows.
    Dim myRow As DataRow
    For i = 0 To 9
        myRow = myTable.NewRow()
        myRow("myColumn") = "item " + i.ToString()
        myTable.Rows.Add(myRow)
    Next i
    myTable.AcceptChanges()
    ' Create a DataView with the table.
    Dim myView As New DataView(myTable)
    ' Change one row's value:
    myTable.Rows(1)("myColumn") = "Hello"
    ' Add one row:
    myRow = myTable.NewRow()
    myRow("myColumn") = "World"
    myTable.Rows.Add(myRow)
    ' Set the RowStateFilter to display only Added and modified rows.
    myView.RowStateFilter = _
       DataViewRowState.Added Or DataViewRowState.ModifiedCurrent
    ' Print those rows. Output = "Hello" "World";
    PrintView(myView, "ModifiedCurrent and Added")
    ' Set filter to display on originals of modified rows.
    myView.RowStateFilter = DataViewRowState.ModifiedOriginal
    PrintView(myView, "ModifiedOriginal")
    ' Delete three rows.
    myTable.Rows(1).Delete()
    myTable.Rows(2).Delete()
    myTable.Rows(3).Delete()
    ' Set the RowStateFilter to display only Added and modified rows.
    myView.RowStateFilter = DataViewRowState.Deleted
    PrintView(myView, "Deleted")
    'Set filter to display only current.
    myView.RowStateFilter = DataViewRowState.CurrentRows
    PrintView(myView, "Current")
    ' Set filter to display only unchanged rows.
    myView.RowStateFilter = DataViewRowState.Unchanged
    PrintView(myView, "Unchanged")
    ' Set filter to display only original rows.
    myView.RowStateFilter = DataViewRowState.OriginalRows
    PrintView(myView, "OriginalRows")
End Sub
   
Private Sub PrintView(dv As DataView, label As String)
    Console.WriteLine(ControlChars.Cr + label)
    Dim i As Integer
    For i = 0 To dv.Count - 1
        Console.WriteLine(dv(i)("myColumn"))
    Next i
End Sub

[C#] 
private void DemonstrateRowState(){
   int i;
   // Create a DataTable with one column.
   DataTable myTable = new DataTable("myTable");
   DataColumn myColumn = new DataColumn("myColumn");
   myTable.Columns.Add(myColumn);
   // Add ten rows.
   DataRow myRow;
   for(i = 0;i < 10 ;i++) {
      myRow = myTable.NewRow();
      myRow["myColumn"] = "item " + i;
      myTable.Rows.Add(myRow);
   }
   myTable.AcceptChanges();
   // Create a DataView with the table.
   DataView myView = new DataView(myTable);
   // Change one row's value:
   myTable.Rows[1]["myColumn"] = "Hello";
   // Add one row:
   myRow = myTable.NewRow();
   myRow["myColumn"] = "World";
   myTable.Rows.Add(myRow);
   // Set the RowStateFilter to display only Added and modified rows.
   myView.RowStateFilter=DataViewRowState.Added | DataViewRowState.ModifiedCurrent;
   // Print those rows. Output = "Hello" "World";
   PrintView(myView, "ModifiedCurrent and Added");
   // Set filter to display on originals of modified rows.
   myView.RowStateFilter=DataViewRowState.ModifiedOriginal;
   PrintView(myView,"ModifiedOriginal");
   // Delete three rows.
   myTable.Rows[1].Delete();
   myTable.Rows[2].Delete();
   myTable.Rows[3].Delete();
   // Set the RowStateFilter to display only Added and modified rows.
   myView.RowStateFilter=DataViewRowState.Deleted;
   PrintView(myView,"Deleted");
   //Set filter to display only current.
   myView.RowStateFilter=DataViewRowState.CurrentRows;
   PrintView(myView,"Current");
   // Set filter to display only unchanged rows.
   myView.RowStateFilter=DataViewRowState.Unchanged; 
   PrintView(myView,"Unchanged");
   // Set filter to display only original rows.
   myView.RowStateFilter=DataViewRowState.OriginalRows ; 
   PrintView(myView,"OriginalRows");
}


private void PrintView(DataView dv,string label){
   Console.WriteLine("\n" + label);
   for(int i = 0;i < dv.Count ;i++) {
      Console.WriteLine(dv[i]["myColumn"]);
   }
}

[C++] 
private:
 void DemonstrateRowState(){
    int i;
    // Create a DataTable with one column.
    DataTable* myTable = new DataTable(S"myTable");
    DataColumn* myColumn = new DataColumn(S"myColumn");
    myTable->Columns->Add(myColumn);
    // Add ten rows.
    DataRow* myRow;
    for(i = 0;i < 10 ;i++) {
       myRow = myTable->NewRow();
       myRow->Item[S"myColumn"] = String::Format( S"item {0}", __box(i));
       myTable->Rows->Add(myRow);
    }
    myTable->AcceptChanges();
    // Create a DataView with the table.
    DataView* myView = new DataView(myTable);
    // Change one row's value:
    myTable->Rows->Item[1]->Item[S"myColumn"] = S"Hello";
    // Add one row:
    myRow = myTable->NewRow();
    myRow->Item[S"myColumn"] = S"World";
    myTable->Rows->Add(myRow);
    // Set the RowStateFilter to display only Added and modified rows.
    myView->RowStateFilter= static_cast<DataViewRowState>
       (DataViewRowState::Added | DataViewRowState::ModifiedCurrent);
    // Print those rows. Output = "Hello" "World";
    PrintView(myView, S"ModifiedCurrent and Added");
    // Set filter to display on originals of modified rows.
    myView->RowStateFilter=DataViewRowState::ModifiedOriginal;
    PrintView(myView,S"ModifiedOriginal");
    // Delete three rows.
    myTable->Rows->Item[1]->Delete();
    myTable->Rows->Item[2]->Delete();
    myTable->Rows->Item[3]->Delete();
    // Set the RowStateFilter to display only Added and modified rows.
    myView->RowStateFilter=DataViewRowState::Deleted;
    PrintView(myView,S"Deleted");
    //Set filter to display only current.
    myView->RowStateFilter=DataViewRowState::CurrentRows;
    PrintView(myView,S"Current");
    // Set filter to display only unchanged rows.
    myView->RowStateFilter=DataViewRowState::Unchanged; 
    PrintView(myView,S"Unchanged");
    // Set filter to display only original rows.
    myView->RowStateFilter=DataViewRowState::OriginalRows ; 
    PrintView(myView,S"OriginalRows");
 }
 
 void PrintView(DataView* dv,String* label){
    Console::WriteLine(S"\n{0}", label);
    for(int i = 0;i < dv->Count ;i++) {
       Console::WriteLine(dv->Item[i]->Item[S"myColumn"]);
    }
 }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Data

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: System.Data (System.Data.dll 内)

参照

System.Data 名前空間 | DataRow | DataView | DataView | Select