DataSetをバインドするには
● CheckBoxListにDataSetをバインドするサンプル

図 CheckBoxListにDataSetをバインドするサンプル
ここで解説するサンプルは、DataSet(DataTable)をCheckBoxListにバインドします。CheckBoxListからアイテムをチェックしてOKボタンをクリックするとチェックしたアイテムが表示されます。
このサンプルでは、以下のノウハウを習得できます。
▲ DataSetにDataTableを格納する方法
▲ CheckBoxListにDataSet(DataTable)をバインドする方法
データベースのテーブルを読み込んでDataSetに格納するには、DataAdapterクラスのFill()メソッドを使用します。このサンプルは、OleDbConnection, OldDbDataAdapterクラスを使用してAccess/SQL ServerのtblVsDotNetテーブルを読み込んでDataSetに格納します。
行22では、tblVsDotNetテーブルからレコードを抽出するためのSQLを作成しています。行23では、Web.configに登録されているデータベースの接続情報を取得しています。Web.configとデータベースの接続情報については、第3章で詳しく解説します。行24では、OleDbConnectionのインスタンスを生成しています。OleDbConnectionの引数には、データベースの接続情報を指定します。
行25では、OleDbDataAdapterのインスタンスを生成しています。OleDbDataAdapterの引数には、SQLコマンドとOleDbConnectionを指定します。行26では、DataSetを生成しています。ここで生成したDataSetは、OleDbDataAdapterのFill()メソッドで使用します。
行28では、OleDbDataAdapterのFill()メソッドでSQLのSelectステートメントを実行してtblVsDotNetテーブルのレコードを抽出してDataSetに格納します。Fill()メソッドの引数には、DataSetとDataTableの名前を指定します。OleDbDataAdapterは、データベースのテーブルからレコードを抽出するとき、自動的にOleDbConnectionのOpen()/Close()メソッドを実行します。
行29-34のWith…End Withでは、CheckBoxListの各種プロパティを設定してDataSetをバインドしています。行30では、CheckBoxListのDataSourceプロパティにDataSetを設定しています。DataSetに複数のDataTableが格納されているときは、DataMemberプロパティにDataTable名(VsDotNet)を設定する必要があります。
chkVsNet.DataSource = ds
chkVsNet.DataMember = “VsDotNet”
行31-32では、CheckBoxListのDataValueFieldとDataTextFieldプロパティにDataTable(VsDotNet)の対応するカラム名を設定しています。DataTableのShortNameのカラムには、言語の省略名(VB.NET)が格納されています。LongNameのカラムには、言語のフル名称(Visual Basic .NET)が格納されています。行33では、CheckBoxListのDataBind()メソッドで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
|
DataReaderとDataSetの主な相違点: 表 DataReaderとDataSetの主な相違点
|