DataTableCollection クラス
DataSet のテーブルのコレクションを表します。
この型のすべてのメンバの一覧については、DataTableCollection メンバ を参照してください。
System.Object
System.Data.InternalDataCollectionBase
System.Data.DataTableCollection
<Serializable>
Public Class DataTableCollection Inherits InternalDataCollectionBase
[C#]
[Serializable]
public class DataTableCollection : InternalDataCollectionBase
[C++]
[Serializable]
public __gc class DataTableCollection : public InternalDataCollectionBase
[JScript]
public
Serializable
class DataTableCollection extends InternalDataCollectionBase
スレッドセーフ
この型は、マルチスレッド読み取り操作に対して安全です。すべての書き込み操作の同期をとる必要があります。
解説
DataTableCollection には特定の DataSet のすべての DataTable オブジェクトが格納されます。 DataSet の DataTableCollection にアクセスするには、 Tables プロパティを使用します。
コレクション内の項目を管理するには、 DataTableCollection は Add 、 Clear 、 Remove などのメソッドを使用します。
Contains メソッドを使用して、(インデックスまたは名前で指定する) 特定のテーブルがコレクション内にあるかどうかを確認します。
テーブル間を移動するには、 DataTable の ChildRelations プロパティまたは ParentRelations プロパティを使用して、 DataRelation オブジェクトのコレクションにアクセスします。 Relations プロパティを使用する方法でも、指定した DataSet コレクション内の DataTables の親子のリレーションシップ内を移動できます。
使用例
[Visual Basic, C#, C++] 次に示す最初の例では、 DataSet の DataTableCollection を取得し、各テーブルの各行の各列の値を出力します。2 番目の例では、2 つの列で新しい DataTable を作成し、このテーブルを DataTableCollection に追加します。
Private Sub GetTables(ds As DataSet)
' Get Each DataTable in the DataTableCollection and print each row value.
Dim t As DataTable
Dim r As DataRow
Dim c As DataColumn
For Each t In ds.Tables
For Each r In t.Rows
For Each c in t.Columns
If Not (r(c) Is Nothing) Then
Console.WriteLine(r(c))
End If
Next
Next
Next
End Sub
Private Sub CreateTable(ds As DataSet)
Dim newTable As DataTable = new DataTable("MyTable")
newTable.Columns.Add("ID", Type.GetType("System.Int32"))
newTable.Columns.Add("Name", Type.GetType("System.String"))
ds.Tables.Add(newTable)
End Sub
[C#]
private void GetTables(DataSet ds)
{
// Get Each DataTable in the DataTableCollection and print each row value.
foreach (DataTable t in ds.Tables)
foreach (DataRow r in t.Rows)
foreach (DataColumn c in t.Columns)
if (r[c] != null)
Console.WriteLine(r[c]);
}
private void CreateTable(DataSet ds)
{
DataTable newTable = new DataTable("MyTable");
newTable.Columns.Add("ID", typeof(int));
newTable.Columns.Add("Name", typeof(string));
ds.Tables.Add(newTable);
}
[C++]
private:
void GetTables(DataSet* ds)
{
// Get Each DataTable in the DataTableCollection and print each row value.
System::Collections::IEnumerator* myEnum = ds->Tables->GetEnumerator();
while (myEnum->MoveNext())
{
DataTable* t = __try_cast<DataTable*>(myEnum->Current);
System::Collections::IEnumerator* myEnum1 = t->Rows->GetEnumerator();
while (myEnum1->MoveNext())
{
DataRow* r = __try_cast<DataRow*>(myEnum1->Current);
System::Collections::IEnumerator* myEnum2 = t->Columns->GetEnumerator();
while (myEnum2->MoveNext())
{
DataColumn* c = __try_cast<DataColumn*>(myEnum2->Current);
if (r->Item[c] != 0)
Console::WriteLine(r->Item[c]);
}
}
}
}
void CreateTable(DataSet* ds)
{
DataTable* newTable = new DataTable(S"MyTable");
newTable->Columns->Add(S"ID", __typeof(int));
newTable->Columns->Add(S"Name", __typeof(String));
ds->Tables->Add(newTable);
}
[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 内)
参照
DataTableCollection メンバ | System.Data 名前空間 | DataColumn | DataRow | DataTable | DataSet