SQLのDeleteにパラメータを指定してレコードを削除するサンプル

図 SQLのDeleteにパラメータを指定してレコードを削除するサンプル
このサンプルは、SQLのDeleteステートメントにパラメータ(?)を指定して、AccessのNwind.mdbデータベースの得意先テーブルからレコードを削除しています。実行結果として削除したレコード件数を表示します。
このサンプルでは、以下のノウハウを習得することができます。
▲ SQLのDeleteステートメントにパラメータ(Positional Parameter)を指定する方法
▲ パラメータ(Positional Parameter)に値を設定する方法
サンプルのPage_Load()イベントでは、AccessのNwind.mdbデータベースの得意先テーブルからレコードを削除しています。行7-8では、SQLのDeleteステートメントを生成しています。Where句には、パラメータとして?を指定しています。
Delete * From Customers
Where CompanyName=?
ここで指定してパラメータの値は、ParametersコレクションのAdd()/Valueで設定します。パラメータに値を設定するときは、Deleteステートメントに記述した順番に行います。
行13-14では、CompanyNameのパラメータ値を設定しています。行13では、OleDbCommandのParametersコレクションのAdd()メソッドでパラメータ変数@CompanyNameを追加しています。引数には、パラメータ変数、データ型、サイズを指定します。行14では、パラメータ変数@CompanyNameに値を設定しています。行16-18では、AccessのNwind.mdbデータベースを開いてOleDbCommandのExecuteNonQuery()メソッドでDeleteステートメントを実行してデータベースを閉じています。行19-21では、LabelのTextプロパティに削除されたレコード件数を設定して表示します。
6: Sub Page_Load()
7: Dim strSqlDelete As String = "Delete
* From Customers " & _
8: "Where CompanyName=?"
9: Dim con As New OleDbConnection( _
10:
ConfigurationSettings.AppSettings("conStringAccNw"))
11: Dim cmd As New
OleDbCommand(strSqlDelete, con)
12:
13:
cmd.Parameters.Add("@CompanyName", OleDbType.VarWchar, 40)
14: cmd.Parameters("@CompanyName").Value
= "フレンドリーソフト"
15:
16: con.Open()
17: Dim intDeleteCount As Integer =
cmd.ExecuteNonQuery()
18: con.Close()
19: lblMessage.Text = _
20:
String.Format("<b>{0}</b>件の得意先を削除しました.", _
21:
intDeleteCount.ToString())
22: End Sub