● DataTableのレコードを削除するサンプル

図 DataTableのレコードを削除するサンプル
このサンプルは、得意先テーブルをDataTableに取り込んでレコードを削除します。レコードを削除するには、DataRowのDelete()メソッドを使用します。実行結果としてDataTable上で削除されたレコードを表示します。
このサンプルでは、以下のノウハウを習得することができます。
▲ 得意先テーブルをDataTableに取り込む方法
▲ DataTableのレコードを削除する方法
▲ DataTableから削除されたレコードのみ抽出する方法
▲ DataTableのSelect()メソッドの使い方
▲ DataRowのDelete()メソッドの使い方
サンプルのPage_Load()イベントでは、得意先テーブルをDataTableに取り込んでレコードを削除しています。行8-9では、得意先テーブルからレコードを抽出するSQLを生成しています。行10-13では、OleDbConnection、OleDbDataAdapter、DataTableのインスタンスを生成しています。
行15では、OleDbDataAdapterのFill()メソッドで得意先テーブルをDataTableに取り込んでいます。行17では、DataTableのRo
行19では、DataViewRo
行22-24のFor Each…NextでarrRo
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)
17: Dim dr As DataRow = dt.Ro
18: dr.Delete
19: Dim dvrs As DataViewRo
20: Dim arrRo
21:
Response.Write("<h2>DataTable.DataRow.Delete</h2>")
22: For Each dr In arrRo
23: DisplayRow(dr)
24: Next
25: End Sub
Sub DisplayRow()では、DataRowのすべてのカラム名とカラム値を表示します。行28では、DataRowのTableプロパティからDataTableを生成しています。行30-47のFor Each…Nextでは、DataTableのColumnsコレクションからDataColumnを取り出しています。行40-42は、DataRowのRo
行48では、DataRowのすべてのカラムを表示した後にHTMLの<hr>タグを表示しています。
27: Sub DisplayRow(dr As DataRow)
28: Dim dt As DataTable = dr.Table
29: Dim dc As DataColumn
30: For Each dc In dt.Columns
31: If dr.Ro
39: ElseIf dr.Ro
40:
Response.Write(String.Format("<b>{0}</b>: {1}
<b>{2}</b><br>", _
41:
dc.ColumnName, dr(dc.ColumnName, DataRowVersion.Original), _
42:
Iif(dc.ColumnName="CompanyName","(削除)","")))
43: Else
47: Next
48:
Response.Write("<hr>")
49: End Sub