ASP.NET Listコントロールのホームへ戻る

DataReaderをバインドするには

 

  DropDownListDataReaderをバインドするサンプル

 

DropDownListDataReaderをバインドするサンプル

 

このサンプルは、DropDownListDataReaderをバインドしてアイテムを表示しています。DropDownListからアイテムを選択すると、選択したアイテムが表示されます。

 

このサンプルでは、以下のノウハウを習得することができます。

 

  DataReaderを生成する方法

  DropDownListDataReaderをバインドする方法

  DropDownListItemsコレクションのInsert()メソッドの使い方

 

このサンプルでは、OleDbConnection, OleDbCommandクラスを使用してAccess/SQL ServertblVsDotNetテーブルを読み込んでOleDbDataReaderを生成します。行22では、tblVsDotNetテーブルからレコードを抽出するためのSQLを作成しています。行23では、Web.configに登録されているデータベースの接続情報を取得しています。Web.configとデータベースの接続情報については、第3章で詳しく解説します。行24では、OleDbConnectionのインスタンスを生成しています。OleDbConnectionの引数には、データベースの接続情報を指定します。行25では、OleDbCommandのインスタンスを生成しています。OleDbCommandの引数には、SQLコマンドとOleDbConnectionを指定します。

 

27では、OleDbConnectionOpen()メソッドでデータベースを開いています。行28-34With…End Withでは、DropDownListの各種プロパティを設定してOleDbDataReaderをバインドしています。行29では、OleDbCommandExecuteReader()メソッドでSQLSelectステートメントを実行してOleDbDataReaderを生成してDropDrownListDataSourceプロパティに設定しています。ExecuteReader()メソッドの引数にCommandBehavior.CloseConnectionを指定すると、OleDbDataReaderが解放されるときに自動的にデータベースが閉じられます。行30-31では、DropDownListDataValueFieldDataTextFieldプロパティにOleDbDataReaderの対応するカラム名を設定しています。OleDbDataReaderShortNameのカラムには、言語の省略名(VB.NET)が格納されています。LongNameのカラムには、言語のフル名称(Visual Basic .NET)が格納されています。行32では、DropDownListDataBind()メソッドでOleDbDataReaderをバインドしています。行33では、DropDownListItemsコレクションのInsert()メソッドでヘルプ情報のアイテムを挿入しています。Insert()メソッドの引数には、アイテムの挿入場所とListItemを指定します。挿入場所に0を指定すると先頭アイテムとして挿入されます。

 

21: Sub BindData()
 22:   Dim strSQL as String = "Select * From tblVsDotNet"
 23:   Dim strCon as String = ConfigurationSettings.AppSettings("conStringNw")
 24:   Dim con As OleDbConnection = New OleDbConnection(strCon)
 25:   Dim cmd As OleDbCommand = New OleDbCommand(strSQL, con)
 27:   con.Open()
 28:   With dropVsNet
 29:     .DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection)
 30:     .DataValueField = "ShortName"
 31:     .DataTextField = "LongName"
 32:     .DataBind()
 33:     .Items.Insert(0, New ListItem("---
言語選択 ---","") )
 34:   End With
 35: End Sub

 

 

Tip

DropDownListDataBind()メソッドでバインドしたアイテムの先頭にヘルプ情報を挿入するには:

 

ArrayList, DataReader, DataSet(DataTable)に格納されているアイテムを、DropDownListDataBind()メソッドでバインドするとき、ヘルプ情報を追加するにはArrayList, DataReader, DataSetの先頭にヘルプ情報も格納しておく必要があります。ArrayListを使用するときは、比較的簡単にヘルプ情報をArrayListに挿入できますが、DataReader, DataSetにヘルプ情報を挿入するには、SQLのサブクエリを使用するなど高度なテクニックが要求されます。DropDownListItemsコレクションのInsert()メソッドを使用すれば、任意の場所に新規アイテムを挿入することができます。Insert()メソッドの引数には、0から始まる挿入場所とListItemを指定します。

 

myDropDownList.Items.Insert(0, New ListItem(“ヘルプ情報”))

 

 

ASP.NET Listコントロールのホームへ戻る