DataColumnオブジェクト

 DataTableクラスにはColumnsコレクションがあります。このコレクションにはDataTableオブジェクトの列ごとのオブジェクトがセットされています。このコレクションを通して列情報を参照したり設定したりすることができます。

■ 主なプロパティ

プロパティ名 概要
AllowDBNull 列にnull値を格納できるかどうかを示す値を取得・設定する
AutoIncrement 追加する新しい行で、この列の値を自動的にインクリメントするかどうかを示す値を取得・設定する
AutoIncrementSeed AutoIncrementプロパティがtrueに設定されている列の開始値を取得・設定する
AutoIncrementStep AutoIncrementプロパティがtrueに設定されている列で使用するインクリメント値を取得・設定する
Caption 列の見出しを取得・設定する
ColumnName DataColumnCollection内の列名を取得・設定する
DataType 列に格納されているデータの型を取得・設定する
DefaultValue 新しい行を追加するときに使用されるこの列の規定値を取得・設定する
Expression 行のフィルター処理、列内の値計算、集約列の作成に使用する式を取得・設定する
MaxLength テキスト列の最大長を取得・設定する
Ordinal DataColumnCollectionコレクション内の0から始まる列の位置を取得する
ReadOnly 追加する新しい行で、この列の値を変更できるかどうかを示す値を取得・設定する
Table 列が属するDataTableオブジェクトを取得する
Unique 列の値が一意である必要があるかどうかを示す値を取得・設定する
DataColumnの主なプロパティ

■ 主なメソッド

メソッド名 概要
SetOrdinal(Int32) DataColumnの位置を、指定された位置に変更する
DataColumnの主なメソッド

○ プロジェクト

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

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

サンプルダウンロード

○ 作成の準備

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

○ プログラム

 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("データテーブルに登録されている列一覧")
  16.  For Each dc As DataColumn In dt.Columns
  17.   Console.WriteLine(dc.Caption)
  18.  Next
  19.  Console.ReadLine()
  20. End Sub

○ 実行結果

データテーブルに登録されている列一覧
Id
UserName
Password
Name

○ 解説

 26~28行目では、DataTableオブジェクトのColumnsコレクションをループ処理しています。ループするごとに一つずつDataColumnオブジェクトをとりだし、変数dcに格納します。27行目でDataColumnオブジェクトのCaptionプロパティを参照して、設定されている列名を表示しています。

前へ   次へ