ADO.NET Accessのホームへ戻る

SQLInsertステートメントでレコードを追加するサンプル

 

 SQLInsertステートメントでレコードを追加するサンプル

 

このサンプルは、SQLInsertステートメントでAccessNwind.mdbデータベースの得意先テーブルに新規レコードを追加します。実行結果として新規登録したレコードの得意先IDを表示します。

 

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

 

  OleDbConnectionOpen(),Close()メソッドの使い方

  OleDbCommandExecuteNonQuery()メソッドの使い方

  OleDbCommandExecuteScalar()メソッドの使い方

  SQLInsertステートメントの使い方

  SQL@@Identityの使い方

 

サンプルのPage_Load()イベントでは、AccessNwind.mdbデータベースの得意先テーブルに新規レコードを追加します。行7-9では、SQLInsertステートメントを生成しています。得意先IDは、オートナンバー型のフィールドのため自動採番されます。

 

Insert Into Customers

(CompanyName, ContactName, Phone)
"Values('
フレンドリーソフト','葛西 秋雄','0480-99-9999')"

 

10では、直前に追加したレコードのIDを取得するSQLを生成しています。

 

Select @@Identity

 

@@Identityは、直前に追加したレコードのIDを返します。このサンプルの場合、得意先IDを返します。行11-12では、OleDbConnectionのインスタンスを生成しています。引数には、Web.configから取得したConnectionStringを指定しています。行13では、OleDbCommandのインスタンスを生成しています。引数には、SQLOleDbConnectionを指定しています。

 

16では、OleDbConnectionOpen()メソッドでAccessNwind.mdbデータベースを開いています。行17では、OleDbCommandExecuteNonQuery()メソッドでSQLInsertを実行して、得意先テーブルに新規レコードを追加しています。行18では、OleDbCommandCommandTextプロパティに追加したレコードの得意先IDを取得するSQLを設定しています。行19では、OleDbCommandExecuteScalar()メソッドで得意先IDを取得して変数に保存します。ExecuteScalar()メソッドは、@@IdentityCound(*)などシングルカラムの情報を取得するときに使用します。行20では、OleDbConnectionClose()メソッドでAccessNwind.mdbデータベースを閉じています。行21-23では、LabelTextプロパティに新規登録した得意先レコードのIDを設定して表示しています。

 

  6: Sub Page_Load()
  7:   Dim strSqlInsert As String = "Insert Into Customers " & _
  8:     "(CompanyName, ContactName, Phone) " & _
  9:     "Values('
フレンドリーソフト','葛西 秋雄','0480-99-9999')"
 10:   Dim strSqlSelect As String = "Select @@Identity"
 11:   Dim con As New OleDbConnection( _
 12:     ConfigurationSettings.AppSettings("conStringAccNw"))
 13:   Dim cmd As New OleDbCommand(strSqlInsert, con)
 14:   Dim intCustomerID As Integer
 15:
 16:   con.Open()
 17:   cmd.ExecuteNonQuery()
 18:   cmd.CommandText = strSqlSelect
 19:   intCustomerID = cmd.ExecuteScalar()
 20:   con.Close()
 21:   lblMessage.Text = _
 22:     String.Format("
得意先ID<b>{0}</b>を追加しました.", _
 23:     intCustomerID.ToString())
 24: End Sub

 

ADO.NET Accessのホームへ戻る