DataRow.GetChildRows メソッド (DataRelation)
指定した DataRelation を使用して、この DataRow の子行を取得します。
Overloads Public Function GetChildRows( _
ByVal relation As DataRelation _) As DataRow()
[C#]
public DataRow[] GetChildRows(DataRelationrelation);
[C++]
public: DataRow* GetChildRows(DataRelation* relation) [];
[JScript]
public function GetChildRows(
relation : DataRelation) : DataRow[];
パラメータ
- relation
使用する DataRelation 。
戻り値
DataRow オブジェクトの配列 (または長さ 0 の配列)。
例外
例外の種類 | 条件 |
---|---|
ArgumentException | リレーションシップと行が同じテーブルに属していません。 |
ArgumentNullException | リレーションシップが null 参照 (Visual Basic では Nothing) です。 |
RowNotInTableException | 行がこのテーブルに属していません。 |
VersionNotFoundException | このバージョンのデータが行にありません。 |
解説
DataTable は、 ChildRelations プロパティが返す DataRelation オブジェクトのコレクションも格納します。
使用例
[Visual Basic, C#, C++] GetChildRows を使用して、 DataTable 内の各子 DataRelation の子 DataRow オブジェクトを返す例を次に示します。次に、行の各列の値が出力されます。
Private Sub GetChildRowsFromDataRelation(myTable As DataTable)
Dim myRelation As DataRelation
Dim arrRows() As DataRow
Dim myRow As DataRow
Dim i As Integer
Dim myColumn As DataColumn
For Each myRelation In myTable.ChildRelations
For Each myRow In myTable.Rows
arrRows = myRow.GetChildRows(myRelation)
' Print values of rows.
For i = 0 To arrRows.GetUpperBound(0)
For Each myColumn in myTable.Columns
Console.WriteLine(arrRows(i)(myColumn))
Next myColumn
Next i
Next myRow
Next myRelation
End Sub
[C#]
private void GetChildRowsFromDataRelation(DataTable myTable) {
DataRow[] arrRows;
foreach(DataRelation myRelation in myTable.ChildRelations){
foreach(DataRow myRow in myTable.Rows){
arrRows = myRow.GetChildRows(myRelation);
// Print values of rows.
for(int i = 0; i < arrRows.Length; i++){
foreach(DataColumn myColumn in myTable.Columns){
Console.WriteLine(arrRows[i][myColumn]);
}
}
}
}
}
[C++]
private:
void GetChildRowsFromDataRelation(DataTable* myTable) {
DataRow* arrRows[];
System::Collections::IEnumerator* myEnum = myTable->ChildRelations->GetEnumerator();
while (myEnum->MoveNext())
{
DataRelation* myRelation = __try_cast<DataRelation*>(myEnum->Current);
System::Collections::IEnumerator* myEnum1 = myTable->Rows->GetEnumerator();
while (myEnum1->MoveNext())
{
DataRow* myRow = __try_cast<DataRow*>(myEnum1->Current);
arrRows = myRow->GetChildRows(myRelation);
// Print values of rows.
for(int i = 0; i < arrRows->Length; i++){
System::Collections::IEnumerator* myEnum2 = myTable->Columns->GetEnumerator();
while (myEnum2->MoveNext())
{
DataColumn* myColumn = __try_cast<DataColumn*>(myEnum2->Current);
Console::WriteLine(arrRows[i]->Item[myColumn]);
}
}
}
}
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: 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
参照
DataRow クラス | DataRow メンバ | System.Data 名前空間 | DataRow.GetChildRows オーバーロードの一覧 | ChildRelations | DataRelation | GetParentRows | Relations