●
DataViewのすべての行/列を表示するサンプル

図 DataViewのすべての行/列を表示するサンプル
このサンプルは、DataViewのすべての行(レコード)と列(カラム)を表示します。得意先テーブルのDataViewを作成するには、次の手順で行います。
・ New DataTable(“Customers”)でDataTableを作成します。
・ OleDbDataAdapterのFill()メソッドで得意先テーブルをDataTableに取り込みます。
・ New DataView(DataTable)でDataViewを作成します。
このサンプルでは、以下のノウハウを習得することができます。
▲ DataTableを作成する方法
▲ 得意先テーブルをDataTableに取り込む方法
▲ DataTableからDataViewを作成する方法
▲ DataViewからDataRowViewを取り出す方法
▲ DataRowViewのすべてのカラム名とカラム値を取り出す方法
サンプルのPage_Load()イベントでは、得意先テーブルのDataViewを生成してすべての行と列を表示します。行8-9では、得意先テーブルの先頭から3件のレコードを抽出するSQLを生成しています。行10-13では、OleDbConnection、OleDbDataAdapter、DataTableのインスタンスを生成しています。
行15では、OleDbDataAdapterのFill()メソッドで得意先テーブルをDataTableに取り込んでいます。行16では、DataTableからDataViewを生成しています。行20-22のFor…Nextでは、DataViewからDataRowViewを取り出してSub DisplayRow()に渡しています。DisplayRow()では、DataRowViewのすべてのカラム名とカラム値を表示します。
7: Sub Page_Load()
8: Dim strSQL As String =
"Select top 3 CustomerID, " & _
9: "CompanyName,
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: Dim intRow As Integer
18:
Response.Write("<h2>Display All Ro
19:
Response.Write("<table>")
20: For intRow = 0 To dv.Count - 1
21: DisplayRow(dv(intRow))
22: Next
23:
Response.Write("</table>")
24: End Sub
Sub DisplayRow()の行27では、DataRowViewのRow.TableプロパティからDataTableを取得しています。行29-32のFor Each…Nextでは、DataTableのColumnsコレクションからDataColumnを取り出しています。Response.Write()メソッドでは、カラム名とカラム値を表示しています。カラム名は、DataColumnのColumnNameプロパティから取得します。カラム値は、DataRowView()の引数にカラム名を指定して取得します。
26: Sub DisplayRow(drv As DataRowView)
27: Dim dt As DataTable =
drv.Row.Table
28: Dim dc As DataColumn
29: For Each dc In dt.Columns
30:
Response.Write(String.Format("<tr><th>{0}</th><td>{1}</td></tr>",
_
31: dc.ColumnName,
drv(dc.ColumnName)))
32: Next
33:
Response.Write("<tr><td><hr></td><td><hr></td></tr>")
34: End Sub