レコードの追加または変更 : データを更新する
更新 : 2007 年 11 月
このレッスンでは、データ入力フォームを作成して、ローカル データベースのデータを更新する方法を説明します。
前の 3 つのレッスンでは、データベースの作成、データベース ファイルのプロジェクトへの追加、および基本的なユーザー インターフェイスの作成を行いました。この時点でも、アドレス データの変更や、さらには新しいレコードの追加ができないわけではありません。ただし、プログラムを終了して再起動すると、これらの変更は失われます。
このデータは、実際にはローカルの DataSet に格納された、データベース内のデータのコピーでした。プログラムが起動するたびに、DataSet はデータをデータベースから取得します。DataSet に変更が加えられても、その変更はデータベースには反映されません。
AddressesBindingNavigator コントロールの [データの保存] をクリックすると、すべての変更が DataSet からデータベースにコピーされます。ユーザーが必ず作業内容を保存するとは考えられないため、プログラム終了時に自動的に変更をデータベースに保存するコードを追加します。同時に、ユーザー インターフェイスも変更して、データを簡単に入力できるようにします。
やってみよう
ローカル データベース ファイルを更新するには
前のレッスンで作成した Addresses プロジェクトを開きます。前のレッスンをまだ完了していない場合は、「ユーザーへの情報表示 : ユーザー インターフェイスにデータを表示する」に戻って手順を完了します。
ソリューション エクスプローラでデータベースを選択し、[出力ディレクトリにコピー] プロパティの値を [新しい場合はコピーする] に設定します。
ソリューション エクスプローラで Form1 を選択し、[表示] メニューの [デザイナ] をクリックします。
フォームで AddressesDatGridView コントロールをクリックして削除します。
ソリューション エクスプローラの [データ ソース] タブをクリックします。
[データ ソース] ウィンドウで [Addresses] テーブルを選択し、ドロップダウン リストの [詳細] をクリックします。
[Addresses] ノードを [データ ソース] ウィンドウから新しいフォームにドラッグします。
テーブルのフィールドごとに TextBox コントロールが追加されます。このとき、フィールドを説明する Label コントロールも一緒に追加されます。
フォームをダブルクリックしてコード エディタを開きます。
[イベント] ボックスの [FormClosing] をクリックします。
Form1_FormClosing イベント ハンドラに次のコードを追加します。
Me.AddressesBindingSource.EndEdit() Me.AddressesTableAdapter.Update(Me.FirstDatabaseDataSet.Addresses)
このコードにより、AddressesTableAdapter がデータセット内の変更をローカル データベースにコピーします。
F5 キーを押してプログラムを実行します。
一部のデータに変更を加えるか、新しいレコードを追加して、フォームを終了します。
再度 F5 キーを押します。変更が保存されています。
このレッスンでは、データベースを更新する方法について説明しました。次のレッスンでは、サンプル データベースに接続して、関連データをフォームに表示する方法を説明します。
次のレッスン : 「関連データの表示」