ADO.NET DataSetのホームへ戻る

   DataViewのレコードを検索してインデックス番号を取得するサンプル

DataViewのレコードを検索してインデックス番号を取得するサンプル

 

このサンプルは、DataViewから特定のカラム値を指定してレコードを検索します。特定のカラムでレコードを検索するには、Sortプロパティにカラムを設定してからFind()メソッドで値を指定します。

 

このサンプルでは、以下のノウハウを習得することができます。

 

  得意先テーブルをDataTableに取り込む方法

  DataTableからDataViewを作成する方法

  DataViewを特定のカラムで検索する方法

 

サンプルのPage_Load()イベントでは、DataViewを担当者名で検索してレコードを取得します。行8-9では、得意先テーブルからレコードを抽出するSQLを生成しています。行10-13では、OleDbConnectionOleDbDataAdapterDataTableを生成しています。

 

15では、OleDbDataAdapterFill()メソッドで得意先テーブルをDataTableに取り込んでいます。行16では、DataTableからDataViewを生成しています。行17では、DataViewSortプロパティにContactNameを設定して得意先を担当者名の昇順に並べ替えています。行18では、DataViewFind()メソッドで担当者名を指定して得意先を検索しています。Find()メソッドは、Sortプロパティに設定されているカラムを検索します。得意先が見つかったときは、レコードのインデックス番号を返します。レコードが見つからないときは、-1を返します。

 

20-22では、レコードが見つかったときSub DisplayRow()DataRowViewを渡しています。DisplayRow()では、DataRowViewのすべてのカラム名とカラム値を表示します。

 

  7: Sub Page_Load()
  8:   Dim strSQL As String = "Select CustomerID, 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 = "ContactName"
 18:   Dim intIndex As Integer = dv.Find("
林  千春")
 19:   Response.Write("<h2>DataView.Find()</h2>")
 20:   If intIndex <> -1 Then
 21:     DisplayRow(dv(intIndex))
 22:   End If
 23: End Sub

 

ADO.NET DataSetのホームへ戻る