DataGridのBoundColumnの使い方
● DataGridのBoundColumnを使用したサンプル

図 DataGridのBoundColumnを使用したサンプル
このサンプルは、DataGridのBoundColumnを使用して得意先テーブルの得意先ID、得意先名、担当者名、電話番号を表示しています。
このサンプルでは、以下のノウハウを習得することができます。
▲ DataGridに得意先テーブルをバインドする方法
▲ 得意先テーブルの特定のフィールド(カラム)のみ表示する方法
▲ StringBuilderクラスのAppend()メソッドの使い方
▲ Select Top nの使い方
このサンプルでは、OleDbConnection, OleDbCommandクラスを使用してAccess/SQL Serverの得意先テーブルを読み込んでOleDbDataReaderを生成しています。行7-9では、StringBuilderクラスのAppend()メソッドを使用して得意先テーブルからレコードを抽出するSQLを作成しています。行8では、SelectステートメントにTop 10を指定していますので10件のレコードが抽出されます。行9では、Order By句にCustomerIDを指定していますので、得意先IDを昇順に並べ替えて上位10件のレコードが抽出されます。
行10では、OleDbConnectionのインスタンスを生成しています。OleDbConnectionの引数には、データベースの接続情報を指定します。ConfigurationSettingsのAppSettings()メソッドでは、Web.configに登録されているデータベース接続情報を取得します。行12では、OleDbCommandのインスタンスを生成しています。OleDbCommandの引数には、SQLコマンドとOleDbConnectionを指定します。SQLコマンドは、StringBuilderのToString()メソッドで生成しています。
行13では、OleDbConnectionのOpen()メソッドでデータベースを開いています。行14では、OleDbCommandのExecuteReader()メソッドでSQLのSelectステートメントを実行してOleDbDataReaderを生成して、DataGridのDataSourceプロパティに設定しています。行15では、DataGridのDataBind()メソッドでOleDbDataReaderをバインドしています。行16では、OleDbConnectionのClose()メソッドでデータベースを閉じています。
7: Dim sbSQL As New StringBuilder()
8: sbSQL.Append("Select Top 10 *
From Customers ")
9: sbSQL.Append("Order by
CustomerID")
10: Dim con As New OleDbConnection( _
11:
ConfigurationSettings.AppSettings("conStringNw"))
12: Dim cmd As New
OleDbCommand(sbSQL.ToString, con)
13: con.Open()
14: dgrdCustomers.DataSource =
cmd.ExecuteReader()
15: dgrdCustomers.DataBind()
16: con.Close()
得意先テーブルの特定のフィールド(カラム)を表示するには、BoundColumnを使用します。BoundColumnを使用するときは、DataGridのAutoGenerateColumnsプロパティにFalseを設定してカラムの自動生成機能を無効にします。BoundColumnは、<Columns>…</Columns>タグ内に記述します。行35-39では、BoundColumnで得意先テーブルの得意先IDを表示しています。行36では、DataFieldプロパティに得意先IDのフィールド名(CustomerID)を設定しています。行37では、HeaderTextプロパティにカラムの見出し(ID)を設定しています。行38では、ItemStyleのHorizontalAlignプロパティにRightを設定して得意先IDが右詰めで表示されるようにしています。
行40-42では、BoundColumnで得意先テーブルの得意先名を表示しています。以下、同様の手順で担当者名と電話番号を表示させます。
26: <asp:DataGrid id="dgrdCustomers"
runat="server"
27:
AutoGenerateColumns="False"
:::
29: EnableVie
34: <Columns>
35: <asp:BoundColumn
36:
DataField="CustomerID"
37:
HeaderText="ID">
38:
<ItemStyle HorizontalAlign="Right" />
39: </asp:BoundColumn>
40: <asp:BoundColumn
41:
DataField="CompanyName"
42:
HeaderText="得意先名" />
:::
49: </Columns>
50:
</asp:DataGrid>