DataTableオブジェクト

 前節ではDataSetオブジェクトを扱いました。DataSetオブジェクトの一部として構成されるDataTableオブジェクトをさらに活用する方法を見てみましょう。

■ 主なプロパティ

プロパティ名 概要
Columns DataTableオブジェクトを構成する列のコレクションを取得する
DataSet DataTableオブジェクトが所属するDataSetオブジェクトを取得する
PrimaryKey DataTableオブジェクトの主キーとなる列の配列を取得・設定する
Rows DataTableオブジェクトを構成する行のコレクションを取得する
TableName DataTableオブジェクトの名前を取得・設定する
DataTableの主なプロパティ

■ 主なメソッド

メソッド名 概要
Clear() DataTableオブジェクトからすべてのデータを削除する
Compute(String, String) 引数で指定したフィルター基準を満たしている行を、引数で指定した計算をする
ImportRow(DataRow) DataRowオブジェクトをDataTableオブジェクトにコピーする
NewRow() DataTableと同じスキーマで新しいDataRowオブジェクトを生成する
ReadXml(String) XMLファイルを使用してDataTableにスキーマとデータを読み込む
ReadXmlSchema(String) XMLファイルを使用してDataTableにスキーマを読み込む
Select() DataTableオブジェクトからすべてのDataRowオブジェクトの配列を取得する
Select(String) DataTableオブジェクトから引数で指定したフィルター基準を満たしているDataRowオブジェクトの配列を取得する
WriteXml(String) XMLファイルにDataTableのデータを書き込む
WriteXmlSchema(String) XMLファイルにDataTableのスキーマを書き込む
DataTableの主なメソッド

○ プロジェクト

 プロジェクトを作成して確認してみましょう。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 DataTableTest

サンプルダウンロード

○ 作成の準備

 「DataSetTest2」プロジェクトを修正して作成しましょう。DataSetTest2フォルダーをコピーして、作成するプロジェクト名にフォルダー名を変更してください。

○ プログラム

 Mainメソッドに次のように記述してください。

Module1.vb

  1. Sub Main()
  2.  '接続文字列
  3.  Dim constr As String = "Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Work\Books.mdf;Integrated Security=True;Connect Timeout=30"
  4.  'SqlConnectionオブジェクトを生成
  5.  Dim con As SqlConnection = New SqlConnection(constr)
  6.  'Usersテーブルのデータを取得するSQL文を作成
  7.  Dim sql As String = "SELECT * FROM Users;"
  8.  'DataAdapterオブジェクトを生成
  9.  Dim da As New SqlDataAdapter(sql, con)
  10.  'DataTableオブジェクトを生成
  11.  Dim dt As New DataTable()
  12.  'DataTableとデータベースに同期させる
  13.  da.Fill(dt)
  14.  'データテーブルの情報を表示する
  15.  Console.WriteLine("登録されているレコードの件数:{0}", dt.Rows.Count)
  16.  Console.ReadLine()
  17. End Sub

○ 実行結果

登録されているレコードの件数:4

○ 解説

 今回は13行目で、Usersテーブルからすべてのレコードを抽出するSQL文を作成しています。19行目でDataTableオブジェクトを生成しています。そして、22行目でDataAdapterオブジェクトのFillメソッドの引数に指定しています。Fillメソッドはオーバーロードされていて、DataSetオブジェクトやDataTableオブジェクトを引数に指定することができます。

 25行目でDataTableオブジェクトに読み込まれているレコードの件数を表示しています。DataTableオブジェクトのRowsプロパティはコレクションです。コレクションのCountプロパティを使って格納されている行オブジェクトの数を表示しています。

前へ   次へ