ADO.NET SQL Serverのホームへ戻る

  SqlDataAdapterUpdate()メソッドを使用してDataTableをデータベースに反映するサンプル(SQLコマンド手動作成)

Update()メソッドでデータベースに反映するサンプル(SQLコマンド手動作成)

 

このサンプルは、DataTable上で変更されたレコードをSqlDataAdapterUpdate()メソッドを使用してデータベースに反映します。Update()メソッドが使用するSQLInsert, Update, Deleteステートメントは、手動で作成しています。

 

このサンプルでは、次のような処理を行っています。

 

  NwindSQLデータベースに得意先テーブル(tblCustomersUpdate)作成

  得意先テーブルにテストデータ作成

  得意先テーブルをDataTableに取り込む

  DataTableのレコード編集(レコードの追加、編集、削除を含む)

  Update()メソッドでDataTableを得意先テーブルに反映

 

SqlDataAdapterUpdate()メソッドでDataTableを得意先テーブルに反映するときに使用するSQL(Insert/Update/Delte)は、プログラム側で用意したものを使用します。

 

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

 

  SQL Serverのデータベースからテーブルを削除する方法 (Drop Table)

  SQL Serverのデータベースにテーブルを作成する方法 (Create Table)

  テーブルのフィールド(カラム)にデフォルト値を設定する方法 (Default 0)

  Insertのストアドプロシージャを作成する方法

  Updateのストアドプロシージャを作成する方法

  Deleteのストアドプロシージャを作成する方法

  DataTableを生成する方法

  DataTableDataColumnにデフォルト値を設定する方法 (DefaultValue = 0)

  DataTableのレコードを処理(追加、編集、削除、抽出)する方法

  SqlParametersコレクションのAdd()メソッドの使い方

  SqlParameterSourceVersionプロパティの使い方

  DataRowVersionCurrentOriginalの使い方

 

データベースからテーブルを削除するSQL:

Drop Table tblCustomersUpdate

 

データベースにテーブルを作成するSQL:

Create Table tblCustomersUpdate
 (CustomerID int Not Null Primary Key,
  CompanyName nvarchar(40) Not Null,
  ContactName nvarchar(30) Not Null,

  Phone nvarchar(24) Not Null,
  ConcurrencyID int Default 0)

 

レコードを追加するストアドプロシージャInsertCommand

Create Procedure spCustomersUpdateTestInsert
 (@CustomerID int,
  @CompanyName nvarchar(40),
  @ContactName nvarchar(30),
  @Phone nvarchar(24))
As
Insert Into tblCustomersUpdate
 (CustomerID, CompanyName, ContactName, Phone)
 Values(@CustomerID, @CompanyName, @ContactName, @Phone)

 

レコードを更新するストアドプロシージャUpdateCommand

Create Procedure spCustomersUpdateTestUpdate
 (@NewCompanyName nvarchar(40),
  @NewContactName nvarchar(30),
  @NewPhone nvarchar(24),
  @OrgCustomerID int,
  @OrgConcurrencyID int)
As
Update tblCustomersUpdate
 Set CompanyName = @NewCompanyName,
  ContactName = @NewContactName,
  Phone = @NewPhone,
  ConcurrencyID = ConcurrencyID + 1
 Where CustomerID = @OrgCustomerID And
  ConcurrencyID = @OrgConcurrencyID

 

レコードを削除するストアドプロシージャDeleteCommand

Create Procedure spCustomersUpdateTestDelete
 (@CustomerID int,
  @ConcurrencyID int)
As
Delete From tblCustomersUpdate
 Where CustomerID = @CustomerID And
  ConcurrencyID = @ConcurrencyID

ADO.NET SQL Serverのホームへ戻る