フォーム」テンプレートから独自に作成する。具体的なUIデザインは図15のとおりである。編集画面(ダイアログ画面)のUIデザイン●ShowDialogメソッドを拡張する編集画面は、拡張したShowDialogメソッドでのみ呼び出せる(※通常のShowDiaplogメソッドでは呼び出せないようにしている)。この拡張ShowDiaplogメソッドの第3パラメータに、(Pubsデータベースの)titlesテーブルPK(PrimaryKey:主キー)であるtitle_idフィールドの値を指定して呼び出すと、PKに一致するtitlesテーブルの1レコードの内容を各コントロールに表示して、それらの値を編集する機能を、この編集画面に実装している。拡張ShowDiaplogメソッドの実装コードは下記のとおりだ。ShowDiaplogメソッドを拡張したコード例(上:VB、下:C#)編集画面では、ShowDialogメソッドで指定された「ID」「パスワード」「タイトルID」をフォーム・クラス内のPrivate変数に保持して、それをShownイベント・プロシージャ内で利用している。Serverに接続してデータを取得するように実装した場合、ダイアログが表示される前に実行されるため、タイトル一覧画面の右クリック・メニューの[編集]をクリックしてから、編集画面が表示されるまでに、(データ取得の時間がかかって)間が空いてしまう。これを回避するために、Shownイベント・プロシージャにこの処理を実装している。Serverから1レコード分のデータを取得するメソッド(=サンプルではGetTitleDsItemメソッド)もDataAccessClassクラスに記述する。具体的には下記のメソッドを記述する。Serverから1レコード・データを取得するコード例(上:VB、下:C#)前述のタイトル一覧取得時のSELECT文では、titleフィールドの内容に対してLIKE演算子を使ったWHERE句で(titlesテーブル内の一致する全件のデータを)検索していた。編集画面の1レコードだけ取得するSELECT文では、「PKであるtitle_idフィールドが特定の値に一致するか」をWHERE句に指定して(titlesテーブル内の一致する1件のデータを)検索している。そのほかの部分はタイトル一覧取得のときのコードと同じだ。自動的にデータを表示する1レコードのデータを編集画面に表示するにはいろいろな手法が考えられるが、このサンプルではBindingSourceコントロールを使って画面に配置したコントロールとレコードをデータ連結している。下記のコードでは、Shownイベント・プロシージャ内にその処理を実装している。編集画面表示直後にデータを表示するコード例(上:VB、下:C#)●編集画面の内容を保存するBindingSourceコントロールを使ったWindowsフォームで、さらにデータ・アクセス部分を別のクラス・ファイルに分離した場合、編集画面の内容を保存するコードは(下記のとおり)極めてシンプルになる。編集画面の内容を保存するコード例(上:VB、下:C#)BindingSourceコントロールを使用しているので、そのEndEditメソッド(=上記のコードでは「Edit_BindingSource.EndEditメソッド」)を実行するだけで、BindingSourceコントロールを経由して、編集画面の内容をデータセットに反映できる。Serverに保存している。Serverに保存している。Updateメソッドを実行するには、UPDATE文、INSERT文、DELETE文のSQL文をデータアダプタにあらかじめ設定しておかなければならない。これらのSQL文をすべて手動でコーディングしてもいいが、ADO.NETではSELECT文からUPDATE文、INSERT文、DELETE文を生成してくれるコマンド・ビルダ(=下記のコードでは「SqlCommandBuilder」)が提供されている。以上の内容を実装したのが下記のコードだ。Serverにデータを保存するコード例(上:VB、下:C#)最後に、ここまでに作成してきたアプリケーションを完成させよう。7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。TranslatorはPowerPoint用のアドイン。