DataGridBoundColumnの使い方

 

  DataGridBoundColumnを使用したサンプル

 

DataGridBoundColumnを使用したサンプル

 

このサンプルは、DataGridBoundColumnを使用して得意先テーブルの得意先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の引数には、データベースの接続情報を指定します。ConfigurationSettingsAppSettings()メソッドでは、Web.configに登録されているデータベース接続情報を取得します。行12では、OleDbCommandのインスタンスを生成しています。OleDbCommandの引数には、SQLコマンドとOleDbConnectionを指定します。SQLコマンドは、StringBuilderToString()メソッドで生成しています。

 

13では、OleDbConnectionOpen()メソッドでデータベースを開いています。行14では、OleDbCommandExecuteReader()メソッドでSQLSelectステートメントを実行してOleDbDataReaderを生成して、DataGridDataSourceプロパティに設定しています。行15では、DataGridDataBind()メソッドでOleDbDataReaderをバインドしています。行16では、OleDbConnectionClose()メソッドでデータベースを閉じています。

 

  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を使用するときは、DataGridAutoGenerateColumnsプロパティにFalseを設定してカラムの自動生成機能を無効にします。BoundColumnは、<Columns>…</Columns>タグ内に記述します。行35-39では、BoundColumnで得意先テーブルの得意先IDを表示しています。行36では、DataFieldプロパティに得意先IDのフィールド名(CustomerID)を設定しています。行37では、HeaderTextプロパティにカラムの見出し(ID)を設定しています。行38では、ItemStyleHorizontalAlignプロパティにRightを設定して得意先IDが右詰めで表示されるようにしています。

 

40-42では、BoundColumnで得意先テーブルの得意先名を表示しています。以下、同様の手順で担当者名と電話番号を表示させます。

 

26: <asp:DataGrid id="dgrdCustomers" runat="server"
 27:   AutoGenerateColumns="False"

:::
 29:   EnableViewState="False">
 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>

 

ASP.NET DataGridのホームへ戻る