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

DataSetをバインドするには

 

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

 

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

 

ここで解説するサンプルは、DataSetDataTable)をCheckBoxListにバインドします。CheckBoxListからアイテムをチェックしてOKボタンをクリックするとチェックしたアイテムが表示されます。

 

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

 

   DataSetDataTableを格納する方法

   CheckBoxListDataSet(DataTable)をバインドする方法

 

データベースのテーブルを読み込んでDataSetに格納するには、DataAdapterクラスのFill()メソッドを使用します。このサンプルは、OleDbConnection, OldDbDataAdapterクラスを使用してAccess/SQL ServertblVsDotNetテーブルを読み込んでDataSetに格納します。

 

22では、tblVsDotNetテーブルからレコードを抽出するためのSQLを作成しています。行23では、Web.configに登録されているデータベースの接続情報を取得しています。Web.configとデータベースの接続情報については、第3章で詳しく解説します。行24では、OleDbConnectionのインスタンスを生成しています。OleDbConnectionの引数には、データベースの接続情報を指定します。

 

25では、OleDbDataAdapterのインスタンスを生成しています。OleDbDataAdapterの引数には、SQLコマンドとOleDbConnectionを指定します。行26では、DataSetを生成しています。ここで生成したDataSetは、OleDbDataAdapterFill()メソッドで使用します。

 

28では、OleDbDataAdapterFill()メソッドでSQLSelectステートメントを実行してtblVsDotNetテーブルのレコードを抽出してDataSetに格納します。Fill()メソッドの引数には、DataSetDataTableの名前を指定します。OleDbDataAdapterは、データベースのテーブルからレコードを抽出するとき、自動的にOleDbConnectionOpen()/Close()メソッドを実行します。

 

29-34With…End Withでは、CheckBoxListの各種プロパティを設定してDataSetをバインドしています。行30では、CheckBoxListDataSourceプロパティにDataSetを設定しています。DataSetに複数のDataTableが格納されているときは、DataMemberプロパティにDataTable(VsDotNet)を設定する必要があります。

 

chkVsNet.DataSource = ds

chkVsNet.DataMember = “VsDotNet”

 

31-32では、CheckBoxListDataValueFieldDataTextFieldプロパティにDataTable(VsDotNet)の対応するカラム名を設定しています。DataTableShortNameのカラムには、言語の省略名(VB.NET)が格納されています。LongNameのカラムには、言語のフル名称(Visual Basic .NET)が格納されています。行33では、CheckBoxListDataBind()メソッドでDataSet(DataTable)をバインドしています。

 

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 da As OleDbDataAdapter = New OleDbDataAdapter(strSQL, con)
 26:   Dim ds As DataSet = New DataSet()
 28:   da.Fill(ds, "VsDotNet")
 29:   With chklVsNet
 30:     .DataSource = ds
 31:     .DataValueField = "ShortName"
 32:     .DataTextField = "LongName"
 33:     .DataBind()

34:   End With
 35: End Sub

 

43: <asp:CheckBoxList id="chklVsNet" runat="server" />

 

 

Note

DataReaderDataSetの主な相違点:

 

DataReaderDataSetの主な相違点

DataReader

DataSet

データベースを接続した状態でレコードを処理。

データベースを切断した状態でレコードの処理が可能。

順方向の移動のみ可能。

レコードの検索、並べ替えなどが可能。

レコードの読み込み専用。

レコードの追加、修正、削除が可能。データベースに反映するには、DataAdapterUpdate()メソッド使用。

 

 

 

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