ADO.NET Accessのホームへ戻る

SQLUpdateにパラメータを指定してレコードを更新するサンプル

 SQLUpdateにパラメータを指定してレコードを更新するサンプル

 

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

 

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

 

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

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

 

サンプルのPage_Load()イベントでは、AccessNwind.mdbデータベースの得意先テーブルを更新しています。行7-8では、SQLUpdateステートメントを生成しています。SetWhere句には、パラメータとして?を指定しています。

 

Update Customers
Set Phone=? Where CompanyName=?

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

 

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

 

  6: Sub Page_Load()
  7:   Dim strSqlUpdate As String = "Update Customers " & _
  8:     "Set Phone=? Where CompanyName=?"
  9:   Dim con As New OleDbConnection( _
 10:     ConfigurationSettings.AppSettings("conStringAccNw"))
 11:   Dim cmd As New OleDbCommand(strSqlUpdate, con)
 12:
 13:   cmd.Parameters.Add("@Phone", OleDbType.VarWchar, 24)
 14:   cmd.Parameters("@Phone").Value = "0480-88-8888"
 15:   cmd.Parameters.Add("@CompanyName", OleDbType.VarWchar, 40)
 16:   cmd.Parameters("@CompanyName").Value = "
フレンドリーソフト"
 17:
 18:   con.Open()
 19:   Dim intUpdateCount As Integer = cmd.ExecuteNonQuery()
 20:   con.Close()
 21:   lblMessage.Text = _
 22:     String.Format("<b>{0}</b>
件の得意先を更新しました.", _
 23:     intUpdateCount.ToString())
 24: End Sub

 

ADO.NET Accessのホームへ戻る