OleDbDataReaderからフィールド名、データ型、ソースデータの型名を取得するサンプル

図 OleDb DataReaderからフィールド名、データ型、ソースデータの型名を取得するサンプル
このサンプルは、得意先テーブルのフィールド名、データ型、ソースデータの型名を取得して表示します。フィールド名、データ型、ソースデータの型名を取得するには、OleDbDataReaderのGetName()、GetFiledType()、GetDataTypeName()メソッドを使用します。
このサンプルでは、以下のノウハウを習得することができます。
▲ SQLのSelect Topオプションの使い方
▲ OleDbDataReaderのRead()メソッドの使い方
▲ OleDbDataReaderからフィールド名、データ型、ソースデータの型名を取得する方法
サンプルのPage_Load()イベントでは、AccessのNwind.mdbデータベースの得意先テーブルのフィールド名、データ型、ソースデータの型名を表示します。行7では、得意先テーブルからレコードを抽出するSQLを生成しています。行8-10では、OleDbConnectionとOleDbCommandのインスタンスを生成しています。
行13では、OldDbConnectionのOpen()メソッドでAccessのNwind.mdbデータベースを開いています。行14では、OleDbCommandのExecuteReader()メソッドで得意先テーブルのOleDbDataReaderを生成しています。行15-22のIf…End Ifでは、OleDbDataReaderのRead()メソッドで得意先テーブルの先頭レコードを読み込んでいます。レコードが正常に読み込まれたときは、Trueが返されます。レコードが空(EOF)のときは、Falseが返されます。
行17-20のFor…Nextでは、OleDbDataReaderのすべてのフィールド(カラム)を処理しています。行18では、LabelのTextプロパティに得意先テーブルのフィールド名、データ型、ソースデータの型名を設定しています。フィールド名を取得するには、OleDbDataReaderのGetName()メッドを使用します。引数には、フィールドのインデックス番号を指定します。フィールドのデータ型を取得するには、GetFiledType()メソッドを使用します。ソースデータの型名を取得するには、GetDataTypeName()メソッドを使用します。
行23では、OleDbDataReaderのClose()メソッドで得意先テーブルを閉じています。行24では、OleDbConnectionのClose()メソッドでAccessのNwind.mdbデータベースを閉じています。
6: Sub Page_Load()
7: Dim strSqlSelect As String = "Select
* From Customers;"
8: Dim con As New OleDbConnection( _
9:
ConfigurationSettings.AppSettings("conStringAccNw"))
10: Dim cmd As New
OleDbCommand(strSqlSelect, con)
11: Dim i As Integer
12:
13: con.Open()
14: Dim dr As OleDbDataReader =
cmd.ExecuteReader()
15: If dr.Read() Then
16: lblMessage.Text = "<table
border=1>"
17: For i=0 to dr.FieldCount
- 1
18:
lblMessage.Text &=
String.Format("<tr><th>{0}</th><td>{1}</td><td>{2}</td></tr>", _
19:
dr.GetName(i),dr.GetFieldType(i),dr.GetDataTypeName(i))
20: Next
21: lblMessage.Text &=
"</table>"
22: End If
23: dr.Close()
24: con.Close()
25: End Sub