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 オブジェクトおよびこのオブジェクトのプロパティとメソッドを使用します。 DataRowCollection は DataTable 内にある実際の DataRow オブジェクトを表します。 DataColumnCollection には、 DataTable のスキーマを記述する DataColumn オブジェクトが格納されています。 DataColumn の値を返す、または設定するには、オーバーロードされた Item プロパティを使用します。
特定の行の値のステータスを確認するには HasVersion プロパティと IsNull プロパティを使用し、親 DataTable に関連して行のステータスを確認するには RowState プロパティを使用します。
新しい DataRow を作成するには、 DataTable オブジェクトの NewRow メソッドを使用します。新しい DataRow を作成した後、 Add メソッドを使用して、新しい DataRow を DataRowCollection に追加します。最後に、 DataTable オブジェクトの AcceptChanges メソッドを呼び出して、データ行の追加を確認します。 DataTable へのデータ追加の詳細については、「 テーブルへのデータの追加 」を参照してください。
DataRowCollection から DataRow を削除するには、 DataRowCollection の Remove メソッドを呼び出すか、 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