ADO.NET Accessのホームへ戻る

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

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

 

このサンプルは、SQLDeleteステートメントにパラメータ(?)を指定して、AccessNwind.mdbデータベースの得意先テーブルからレコードを削除しています。実行結果として削除したレコード件数を表示します。

 

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

 

  SQLDeleteステートメントにパラメータ(Positional Parameter)を指定する方法

  パラメータ(Positional Parameter)に値を設定する方法

 

サンプルのPage_Load()イベントでは、AccessNwind.mdbデータベースの得意先テーブルからレコードを削除しています。行7-8では、SQLDeleteステートメントを生成しています。Where句には、パラメータとして?を指定しています。

 

Delete * From Customers
Where CompanyName=?

ここで指定してパラメータの値は、ParametersコレクションのAdd()/Valueで設定します。パラメータに値を設定するときは、Deleteステートメントに記述した順番に行います。

 

13-14では、CompanyNameのパラメータ値を設定しています。行13では、OleDbCommandParametersコレクションのAdd()メソッドでパラメータ変数@CompanyNameを追加しています。引数には、パラメータ変数、データ型、サイズを指定します。行14では、パラメータ変数@CompanyNameに値を設定しています。行16-18では、AccessNwind.mdbデータベースを開いてOleDbCommandExecuteNonQuery()メソッドでDeleteステートメントを実行してデータベースを閉じています。行19-21では、LabelTextプロパティに削除されたレコード件数を設定して表示します。

 

  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

ADO.NET Accessのホームへ戻る