レコードの追加または変更 : データを更新する

更新 : 2007 年 11 月

このレッスンでは、データ入力フォームを作成して、ローカル データベースのデータを更新する方法を説明します。

前の 3 つのレッスンでは、データベースの作成、データベース ファイルのプロジェクトへの追加、および基本的なユーザー インターフェイスの作成を行いました。この時点でも、アドレス データの変更や、さらには新しいレコードの追加ができないわけではありません。ただし、プログラムを終了して再起動すると、これらの変更は失われます。

このデータは、実際にはローカルの DataSet に格納された、データベース内のデータのコピーでした。プログラムが起動するたびに、DataSet はデータをデータベースから取得します。DataSet に変更が加えられても、その変更はデータベースには反映されません。

AddressesBindingNavigator コントロールの [データの保存] をクリックすると、すべての変更が DataSet からデータベースにコピーされます。ユーザーが必ず作業内容を保存するとは考えられないため、プログラム終了時に自動的に変更をデータベースに保存するコードを追加します。同時に、ユーザー インターフェイスも変更して、データを簡単に入力できるようにします。

やってみよう

ローカル データベース ファイルを更新するには

  1. 前のレッスンで作成した Addresses プロジェクトを開きます。前のレッスンをまだ完了していない場合は、「ユーザーへの情報表示 : ユーザー インターフェイスにデータを表示する」に戻って手順を完了します。

  2. ソリューション エクスプローラでデータベースを選択し、[出力ディレクトリにコピー] プロパティの値を [新しい場合はコピーする] に設定します。

  3. ソリューション エクスプローラで Form1 を選択し、[表示] メニューの [デザイナ] をクリックします。

  4. フォームで AddressesDatGridView コントロールをクリックして削除します。

  5. ソリューション エクスプローラの [データ ソース] タブをクリックします。

  6. [データ ソース] ウィンドウで [Addresses] テーブルを選択し、ドロップダウン リストの [詳細] をクリックします。

  7. [Addresses] ノードを [データ ソース] ウィンドウから新しいフォームにドラッグします。

    テーブルのフィールドごとに TextBox コントロールが追加されます。このとき、フィールドを説明する Label コントロールも一緒に追加されます。

  8. フォームをダブルクリックしてコード エディタを開きます。

  9. [イベント] ボックスの [FormClosing] をクリックします。

  10. Form1_FormClosing イベント ハンドラに次のコードを追加します。

    Me.AddressesBindingSource.EndEdit()
    Me.AddressesTableAdapter.Update(Me.FirstDatabaseDataSet.Addresses)
    

    このコードにより、AddressesTableAdapter がデータセット内の変更をローカル データベースにコピーします。

  11. F5 キーを押してプログラムを実行します。

    一部のデータに変更を加えるか、新しいレコードを追加して、フォームを終了します。

  12. 再度 F5 キーを押します。変更が保存されています。

このレッスンでは、データベースを更新する方法について説明しました。次のレッスンでは、サンプル データベースに接続して、関連データをフォームに表示する方法を説明します。

次のレッスン : 「関連データの表示

参照

処理手順

必要な情報の入手 : 既存のデータベースに接続する

その他の技術情報

レコードの管理 : プログラムでデータを使用する

Visual Basic ガイド ツアー