●
DataViewのレコードを並べ替えるサンプル

図 DataViewのレコードを並べ替えるサンプル
このサンプルは、DataViewを得意先カナで並べ替えて得意先の50音順に表示します。DataViewを特定のカラムで並べ替えるには、Sortプロパティにカラム名を設定します。Sortプロパティには、SQLのOrder By句の書式で設定します。オプションとして昇順(Asc)/降順(Desc)を指定することができます。
このサンプルでは、以下のノウハウを習得することができます。
▲ 得意先テーブルをDataTableに取り込む方法
▲ DataTableからDataViewを作成する方法
▲ DataViewを特定のカラムで並べ替える方法
サンプルのPage_Load()イベントでは、DataViewを得意先カナで並べ替えして表示します。行8-9では、得意先テーブルからレコードを抽出するSQLを生成しています。行10-13では、OleDbConnection、OleDbDataAdapter、DataTableのインスタンスを生成しています。
行15では、OleDbDataAdapterのFill()メソッドで得意先テーブルをDataTableに取り込んでいます。行16では、DataTableからDataViewを生成しています。行17では、DataViewのSortプロパティにCompanyKanaを設定して得意先カナで並べ替えしています。得意先カナを昇順に並べ替えするときは、CompanyKana AscのようにAscを付加します。降順に並べ替えするときは、CompanyKana DescのようにDescを付加します。昇順/降順のオプションを省略したときは、昇順が採用されます。
行20-22のFor…Nextでは、DataViewからDataRowViewを取り出してSub DisplayRow()に渡しています。DisplayRow()では、DataRowViewのすべてのカラム名とカラム値を表示します。
7: Sub Page_Load()
8: Dim strSQL As String =
"Select CompanyKana, CompanyName, " & _
9: "ContactName,
Phone From Customers"
10: Dim con As New OleDbConnection( _
11:
ConfigurationSettings.AppSettings("conStringNw"))
12: Dim da As New
OleDbDataAdapter(strSQL, con)
13: Dim dt As New
DataTable("Customers")
14:
15: da.Fill(dt)
16: Dim dv As New DataView(dt)
17: dv.Sort = "CompanyKana"
18: Dim intRow As Integer
19:
Response.Write("<h2>DataView.Sort</h2>")
20: For intRow = 0 To dv.Count - 1
21: DisplayRow(dv(intRow))
22: Next
23: End Sub