連載:Windowsフォーム開発入門【Visual Studio 2010対応】

リモート・データ活用術〜SQL Server編〜

初音 玲
2011/02/09

最終仕上げ

 これまでのコードで、SQL Serverのデータを一覧画面に表示し、個別の項目を編集画面に表示して編集内容をSQL Serverに保存する機能が実現できる。

 しかし実際に動かしてみると、編集画面で保存した内容がタイトル一覧画面に反映されないという問題があることが分かる。これは、編集画面からタイトル一覧画面に戻ってきたときに、一覧表示に使っているデータセットに変更内容が反映されていないからだ。

 この問題の解決方法には、大きく分けて下記の2つがある。

(1) タイトル一覧画面のデータセットの該当DataRowオブジェクトを編集画面に渡して編集する
(2) 編集画面からの戻り値として編集内容を取得して、タイトル一覧画面の該当行をその内容に更新する

 パターン(1)の場合、編集画面で編集するデータをすべてタイトル一覧画面での表示時に取得しておかなくてはならないため、一覧表示の内容が対象データの一部の項目だけのような場合には、一覧表示時のデータ量が無用に増えるという欠点がある。

 そこで本稿ではパターン(2)で問題を解決する。以下にそのサンプル・コードを示す。

Dim editrow As DataRow = _form.EditRow
For index As Integer = 0 To Me.Result_DataGridView.ColumnCount - 1
  row.Cells(index).Value = editrow(Me.Result_DataGridView.Columns(index).DataPropertyName)
Next
DataRow editrow = _form.EditRow;
for (int index = 0; index <= this.Result_DataGridView.ColumnCount-1; index++) {
  row.Cells[index].Value = editrow[this.Result_DataGridView.Columns[index].DataPropertyName];
}
リスト12 編集画面で編集したデータを取得して、一覧表示(=DataGridViewコントロール)に反映するコード例(上:VB、下:C#)
「_form.EditRow」というコードにより編集画面で編集したデータを取得。「row」オブジェクトは、一覧表示(=DataGridViewコントロール)の編集中の列を表す。for文により、該当行の全列のデータを更新している。

まとめ

 SQL Server Expressを使ったデータベース・アプリケーションの作り方の基本は以上だ。

 キー・ポイントは、SQL Serverには必要なときに接続し、必要がなくなったらすぐに切断することである。このあたりが.NET以前のWindowsアプリケーションと大きく異なる点だろう。

 ADO.NETには接続と切断を繰り返したとしても性能が劣化しないように、コネクション・プーリング機能により2度目以降の接続時間をほぼ0にする仕組みが搭載されているので、安心してこの基本の流れを実践してほしい。end of article


 INDEX
  [連載]Windowsフォーム開発入門【Visual Studio 2010対応】
  リモート・データ活用術〜SQL Server編〜
    1.SQL Server Expressの設定
    2.画面遷移/スプラッシュ・スクリーン/ログイン画面
    3.タイトル一覧画面(メイン画面)
    4.編集画面(ダイアログ画面)
  5.最終仕上げ

インデックス・ページヘ  「Windowsフォーム開発入門」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH