●
DataViewのレコードを追加、編集、削除するサンプル

図 DataViewのレコードを追加、編集、削除するサンプル
このサンプルは、DataViewに新規レコードを追加したり、すでに登録されているレコードを編集、削除します。DataViewに新規レコードを追加するには、DataViewのAddNew()メソッドを使用します。レコードを編集するには、DataRowView()の引数にカラム名を指定して値を設定します。レコードを削除するには、DataRowViewのDelete()メソッドを使用します。
このサンプルでは、以下のノウハウを習得することができます。
▲ DataTableを作成する方法
▲ 得意先テーブルをDataTableに取り込む方法
▲ DataTableからDataViewを作成する方法
▲ DataViewに新規レコードを追加する方法
▲ DataViewのレコードを編集する方法
▲ DataViewからレコードを削除する方法
▲ DataViewから追加、編集、削除されたレコードを絞り込む方法
サンプルのPage_Load()イベントでは、DataViewに新規レコードを追加したり、編集、削除します。行8-9では、得意先テーブルからレコードを抽出するSQLを生成しています。行10-13では、OleDbConnection、OleDbDataAdapter、DataTableを生成しています。
行15では、OleDbDataAdapterのFill()メソッドで得意先テーブルをDataTableに取り込んでいます。行20では、DataTableからDataViewを生成しています。
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)
20: Dim dv As New DataView(dt)
:::
60: End Sub
行23-27では、DataViewに新規レコードを追加しています。行23では、DataViewのAddNew()メソッドでDataRowViewを生成しています。行24-26では、DataRowViewの得意先名、担当者名、電話番号のカラムに値を設定しています。行27では、DataRowViewのEndEidt()メソッドでDataRowViewの更新を完了させています。
行29-35では、DataViewに追加したレコードを表示しています。行29では、DataViewRo
23:
Dim drv As DataRowView =
dv.AddNew()
24: drv("CompanyName") =
"フレンドリーソフト"
25: drv("ContactName") =
"葛西 秋雄"
26: drv("Phone") =
"(0480)99-9999"
27: drv.EndEdit()
28:
29: Dim dvrs As DataViewRo
30: dv.Ro
32:
Response.Write("<h2>DataView.AddNew()</h2>")
33: For intRow = 0 To dv.Count - 1
34: DisplayRow(dv(intRow))
35: Next
行39-40では、DataViewから1番目のレコードを取り出して得意先名を変更しています。行42-47では、DataViewから変更されたレコードを絞り込んで表示しています。行42では、DataViewRo
39:
drv = dv(0)
40: drv("CompanyName") &= "※"
41:
42: dvrs = DataViewRo
43: dv.Ro
44:
Response.Write("<h2>DataRowView.Edit()</h2>")
45: For intRow = 0 To dv.Count - 1
46: DisplayRow(dv(intRow))
47: Next
行51-52では、DataViewから2番目のレコードを取り出して削除しています。行54-59では、DataViewから削除されたレコードを絞り込んで表示しています。行54では、DataViewRo
51:
drv = dv(1)
52: drv.Delete()
53:
54: dvrs = DataViewRo
55: dv.Ro
56:
Response.Write("<h2>DataRowView.Delete()</h2>")
57: For intRow = 0 To dv.Count - 1
58: DisplayRow(dv(intRow))
59: Next