■ DataTableに追加してある列名を取得したい

[Visual Basic 初心者掲示板] [過去ログの一覧]


ナバコ 2008/02/11(月) 12:12:49 <初心者>
VB2005で、検索項目(属性)をユーザーが自分で設定できる蔵書管理ツールを作りたいと思っています。
Datatableクラスを使って、ユーザーが任意に列を追加してデータベースをつくり、その列名を使って、ユーザーが自分で追加したレコードを検索できるような感じです。

Datatableに列名を追加するところまではできたのですが、
逆にその列名をDatatableから取得する方法をご教授頂きたく思います。

 Dim DT As New DataTable
 DT.TableName = "ユーザー定義テーブル"
 DT.Columns.Add("ユーザーが定義")
 DT.Columns.Add("ユーザーが定義")
 DT.Columns.Add("ユーザーが定義")

という感じで追加してある列の列名一覧を、
あとから取得してリストボックスなどに表示したいです。

Datatableはメモリ上で使うだけで、レコードの保存はCSVファイルを使用しますので、データベースに接続したりなどということはしません。表示にDataGridViewを使うため、反映するのが楽だということでDataTableを使っております。

まだプログラミングの勉強を始めて2週間程度で、
用語の使い方など間違っているかもしれませんが、
何卒宜しくお願いいたします。

YuO [E-Mail] 2008/02/11(月) 13:03:51
DataTable.Columnsで得られるDataColumnCollectionはDataColumnのコレクションですから,
For Each使ったりColumns(0)のようにインデックスアクセスを行ってDataColumnを手に入れることができます。
http://msdn2.microsoft.com/ja-jp/library/system.data.datacolumncollection.aspx

そして,得られたDataColumnのColumnNameプロパティで,列名 (Add時に指定した名前) が得られます。
http://msdn2.microsoft.com/ja-jp/library/system.data.datacolumn.columnname.aspx

ナバコ 2008/02/11(月) 14:18:45 <初心者>
お早いお返事どうもありがとうございます。
丁寧に解説していただきましてやっと理解できました。

どうもありがとうございました<(_ _)>

毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!

Programming Library