次の方法で共有


DataRow クラス

DataTable 内のデータ行を表します。

この型のすべてのメンバの一覧については、DataRow メンバ を参照してください。

System.Object
   System.Data.DataRow

<Serializable>
Public Class DataRow
[C#]
[Serializable]
public class DataRow
[C++]
[Serializable]
public __gc class DataRow
[JScript]
public
   Serializable
class DataRow

スレッドセーフ

この型は、マルチスレッド読み取り操作に対して安全です。すべての書き込み操作の同期をとる必要があります。

解説

DataRow オブジェクトと DataColumn オブジェクトは、 DataTable の主要コンポーネントです。 DataTable 内の値の検索と評価、および値の挿入、削除、更新を実行するには、 DataRow オブジェクトおよびこのオブジェクトのプロパティとメソッドを使用します。 DataRowCollectionDataTable 内にある実際の DataRow オブジェクトを表します。 DataColumnCollection には、 DataTable のスキーマを記述する DataColumn オブジェクトが格納されています。 DataColumn の値を返す、または設定するには、オーバーロードされた Item プロパティを使用します。

特定の行の値のステータスを確認するには HasVersion プロパティと IsNull プロパティを使用し、親 DataTable に関連して行のステータスを確認するには RowState プロパティを使用します。

新しい DataRow を作成するには、 DataTable オブジェクトの NewRow メソッドを使用します。新しい DataRow を作成した後、 Add メソッドを使用して、新しい DataRowDataRowCollection に追加します。最後に、 DataTable オブジェクトの AcceptChanges メソッドを呼び出して、データ行の追加を確認します。 DataTable へのデータ追加の詳細については、「 テーブルへのデータの追加 」を参照してください。

DataRowCollection から DataRow を削除するには、 DataRowCollectionRemove メソッドを呼び出すか、 DataRow オブジェクトの Delete メソッドを呼び出します。 Remove メソッドは、コレクションから行を削除します。これに対して、 Delete は、 DataRow に削除マークを付けます。 AcceptChanges メソッドを呼び出すと、実際に削除が実行されます。実際に行を削除する前に Delete を呼び出すと、削除マークが付けられている行をプログラムによって確認できます。詳細については、「 テーブルからの行の削除 」を参照してください。

使用例

[Visual Basic, C#, C++] DataTable オブジェクトの NewRow メソッドを呼び出して新しい DataRow を作成する例を次に示します。

 
Private Sub CreateNewDataRow()
    ' Use the MakeTable function below to create a new table.
    Dim myTable As DataTable
    myTable = MakeNamesTable()
    ' Once a table has been created, use the NewRow to create a DataRow.
    Dim myRow As DataRow 
    myRow = myTable.NewRow()
    ' Then add the new row to the collection.
    myRow("fName") = "John"
    myRow("lName") = "Smith"
    myTable.Rows.Add(myRow)
    
    Dim dc As DataColumn
    For Each dc in myTable.Columns
       Console.WriteLine(dc.ColumnName)
    Next
    DataGrid1.DataSource=myTable
 End Sub
 
 Private Function MakeNamesTable() As DataTable
    ' Create a new DataTable titled 'Names.'
    Dim namesTable As DataTable = new DataTable("Names") 
    ' Add three column objects to the table.
    Dim idColumn As DataColumn = new  DataColumn()
    idColumn.DataType = System.Type.GetType("System.Int32")
    idColumn.ColumnName = "id"
    idColumn.AutoIncrement = True
    namesTable.Columns.Add(idColumn)
    Dim fNameColumn As DataColumn = New DataColumn()
    fNameColumn.DataType = System.Type.GetType("System.String")
    fNameColumn.ColumnName = "Fname"
    fNameColumn.DefaultValue = "Fname"
    namesTable.Columns.Add(fNameColumn)
    Dim lNameColumn As DataColumn = new DataColumn()
    lNameColumn.DataType = System.Type.GetType("System.String")
    lNameColumn.ColumnName = "LName"
    namesTable.Columns.Add(lNameColumn)
    ' Create an array for DataColumn objects.
    Dim keys(0) As DataColumn 
    keys(0) = idColumn
    namesTable.PrimaryKey = keys
    ' Return the new DataTable.
    MakeNamesTable = namesTable
 End Function

[C#] 
private void CreateNewDataRow(){
    // Use the MakeTable function below to create a new table.
    DataTable myTable;
    myTable = MakeNamesTable();
    // Once a table has been created, use the NewRow to create a DataRow.
    DataRow myRow;
    myRow = myTable.NewRow();
    // Then add the new row to the collection.
    myRow["fName"] = "John";
    myRow["lName"] = "Smith";
    myTable.Rows.Add(myRow);
    
    foreach(DataColumn dc in myTable.Columns)
       Console.WriteLine(dc.ColumnName);
    dataGrid1.DataSource=myTable;
 }
 
 private DataTable MakeNamesTable(){
    // Create a new DataTable titled 'Names.'
    DataTable namesTable = new DataTable("Names"); 
    // Add three column objects to the table.
    DataColumn idColumn = new  DataColumn();
    idColumn.DataType = System.Type.GetType("System.Int32");
    idColumn.ColumnName = "id";
    idColumn.AutoIncrement = true;
    namesTable.Columns.Add(idColumn);
    DataColumn fNameColumn = new DataColumn();
    fNameColumn.DataType = System.Type.GetType("System.String");
    fNameColumn.ColumnName = "Fname";
    fNameColumn.DefaultValue = "Fname";
    namesTable.Columns.Add(fNameColumn);
    DataColumn lNameColumn = new DataColumn();
    lNameColumn.DataType = System.Type.GetType("System.String");
    lNameColumn.ColumnName = "LName";
    namesTable.Columns.Add(lNameColumn);
    // Create an array for DataColumn objects.
    DataColumn [] keys = new DataColumn [1];
    keys[0] = idColumn;
    namesTable.PrimaryKey = keys;
    // Return the new DataTable.
    return namesTable;
 }

[C++] 
private:
void CreateNewDataRow(){
    // Use the MakeTable function below to create a new table.
    DataTable* myTable;
    myTable = MakeNamesTable();
    // Once a table has been created, use the NewRow to create a DataRow.
    DataRow* myRow;
    myRow = myTable->NewRow();
    // Then add the new row to the collection.
    myRow->Item[S"fName"] = S"John";
    myRow->Item[S"lName"] = S"Smith";
    myTable->Rows->Add(myRow);
    
    System::Collections::IEnumerator* myEnum = myTable->Columns->GetEnumerator();
    while (myEnum->MoveNext())
    {
       DataColumn* dc = __try_cast<DataColumn*>(myEnum->Current);
       Console::WriteLine(dc->ColumnName);
    }
    dataGrid1->DataSource=myTable;
 }
 
private:
 DataTable* MakeNamesTable(){
    // Create a new DataTable titled 'Names.'
    DataTable* namesTable = new DataTable(S"Names"); 
    // Add three column objects to the table.
    DataColumn* idColumn = new  DataColumn();
    idColumn->DataType = System::Type::GetType(S"System.Int32");
    idColumn->ColumnName = S"id";
    idColumn->AutoIncrement = true;
    namesTable->Columns->Add(idColumn);
    DataColumn* fNameColumn = new DataColumn();
    fNameColumn->DataType = System::Type::GetType(S"System.String");
    fNameColumn->ColumnName = S"Fname";
    fNameColumn->DefaultValue = S"Fname";
    namesTable->Columns->Add(fNameColumn);
    DataColumn* lNameColumn = new DataColumn();
    lNameColumn->DataType = System::Type::GetType(S"System.String");
    lNameColumn->ColumnName = S"LName";
    namesTable->Columns->Add(lNameColumn);
    // Create an array for DataColumn objects.
    DataColumn* keys[] = new DataColumn*[1];
    keys[0] = idColumn;
    namesTable->PrimaryKey = keys;
    // Return the new DataTable.
    return namesTable;
 }

[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 内)

参照

DataRow メンバ | System.Data 名前空間 | AcceptChanges | Add | DataColumnCollection | DataColumn | DataRowView | DataTable | HasVersion | IsNull | Item | NewRow | DataRowCollection