● DataViewにフィルタ条件を設定してレコードを絞り込むサンプル

図 DataViewにフィルタ条件を設定してレコードを絞り込むサンプル
このサンプルは、DataViewにフィルタ条件を設定してレコードを絞り込みます。フィルタ条件は、DataViewのRowFilterプロパティに設定します。RowFilterプロパティに設定するフィルタ条件は、SQLのWhere句の書式で記述します。
DataView.RowFilter = “Ken=’埼玉県’”
DataView.RowFilter = “Ken=’埼玉県’ And ContactTitle=’料理長’”
DataView.RowFilter = “Ken=’埼玉県’ And ContactTitle Like ‘%長’”
RowFilterプロパティでレコードを絞り込むときは、Find()、FindRo
このサンプルでは、以下のノウハウを習得することができます。
▲ 得意先テーブルをDataTableに取り込む方法
▲ DataTableからDataViewを作成する方法
▲ DataViewにフィルタ条件を設定してレコードを絞り込む方法
▲ 絞り込んだレコードの件数を取得する方法
サンプルのPage_Load()イベントでは、DataViewにフィルタ条件を設定してレコードを絞り込んでいます。行8-9では、得意先テーブルからレコードを抽出するSQLを生成しています。行10-13では、OleDbConnection、OleDbDataAdapter、DataTableを生成しています。
行15では、OleDbDataAdapterのFill()メソッドで得意先テーブルをDataTableに取り込んでいます。行16では、DataTableからDataViewを生成しています。行17では、DataViewのRowFilterプロパティにフィルタ条件を設定してレコードを絞り込んでいます。フィルタ条件は、SQLのWhere句の書式で記述します。このサンプルでは、フィルタ条件として"Ken
= '埼玉県'"を指定して埼玉県の得意先を絞り込んでいます。RowFilterプロパティで絞り込んだレコードの件数は、DataViewのCountプロパティに格納されています。
Response.Write(String.Format(“レコード件数: {0}”, dv.Count))
行20-22のFor…Nextでは、DataViewからDataRowViewを取り出してSub DisplayRow()に渡しています。DisplayRow()では、DataRowViewのすべてのカラム名とカラム値を表示します。
7: Sub Page_Load()
8: Dim strSQL As String =
"Select CustomerID, CompanyName, " & _
9: "ContactName,
Phone, Ken 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.RowFilter = "Ken = '埼玉県'"
18:
Response.Write("<h2>DataView.RowFilter()</h2>")
19: Dim intRow As Integer
20: For intRow = 0 To dv.Count - 1
21: DisplayRow(dv(intRow))
22: Next
23: End Sub