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メソッドを次のように修正してください。

Program.cs

  1. static void Main(string[] args)
  2. {
  3.  //接続文字列
  4.  string constr = @"Data Source=(LocalDB)¥v11.0;AttachDbFilename=C:¥Work¥Books.mdf;Integrated Security=True;Connect Timeout=30";
  5.  //SqlConnectionオブジェクトを生成
  6.  SqlConnection con = new SqlConnection(constr);
  7.  //Usersテーブルのデータを取得するSQL文を作成
  8.  string sql = "SELECT * FROM Users;";
  9.  //DataAdapterオブジェクトを生成
  10.  SqlDataAdapter da = new SqlDataAdapter(sql, con);
  11.  //DataTableオブジェクトを生成
  12.  DataTable dt = new DataTable();
  13.  //DataTableとデータベースに同期させる
  14.  da.Fill(dt);
  15.  //データテーブルの列情報を表示する
  16.  Console.WriteLine("データテーブルに登録されている列一覧");
  17.  foreach (DataColumn dc in dt.Columns)
  18.  {
  19.   Console.WriteLine(dc.Caption);
  20.  }
  21.  Console.ReadLine();
  22. }

○ 実行結果

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

○ 解説

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

前へ   次へ