最後に、本稿で紹介したサンプルプログラムのコードを紹介しておきます。

サンプルコード:フォーム部分(frmMain.cs)

frmMainクラスでは、主に表示ボタンをクリックした時の処理について記述しています。

Windowsフォーム「frmMainクラス」のコード

using System;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using System.Diagnostics;

namespace WinApp { public partial class frmMain : Form { //コンストラクタ public frmMain() { InitializeComponent(); //書籍データを保存する変数 private DataTable _AllBooks = null; //表示ボタンをクリックしたときのイベント private void btnSelect_Click(object sender, EventArgs e) { if (_AllBooks == null) { //別のクラスから書籍データを取得 DataAccess data = new DataAccess(); _AllBooks = data.GetAllBooks(); } //選択内容によるフィルタリング DataView priceView = new DataView(_AllBooks); priceView.RowFilter = string.Format("{0} < 価格", cmbPrice.Text); priceView.Sort = "商品ID"; this.grdList.DataSource = priceView; //合計額の算出 int sum = 0 ; foreach (DataRowView row in priceView) { sum = Convert.ToInt32(row["価格"]); } txtSum.Text = sum.ToString(); } }

フォームに配置したコントロールのName属性は、ボタンが「btnSelect」、コンボボックスが「cmbPrice」、グリッド表(DataGridView)が「grdList」、テキストボックスが「txtSum」と設定しています。

サンプルコード:データアクセス部分(DataAccess.cs)

DataAccessクラスでは、「DB.mdb」という名前のMs-Access形式のデータベースにアクセスして商品テーブルのデータを取得する処理を記述しています。

データベースにアクセスする「DataAccessクラス」のコード

using System;
using System.Data;
using System.Data.OleDb;

namespace WinApp { class DataAccess { public DataTable GetAllBooks() { OleDbConnection con = new OleDbConnection (@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.....\DB.mdb"); const string SQL = "SELECT 商品ID,名称,価格 FROM 商品 WHERE 区分='書籍'"; OleDbDataAdapter adapter = new OleDbDataAdapter(SQL, con); DataTable dt = new DataTable("商品"); adapter.Fill(dt); return dt; } } }

「DB.mdb」の商品テーブルの内容

Visual Studio2008からはLINQ(Language-Integrated Query)と呼ばれる便利な仕組みも登場していますが、今回のサンプルでは、従来から定番のデータ操作方法であるDataTable/DataViewを用いてプログラミングしています。

まとめ

以上、2回にわたってVisual Studioのデバッグ機能について紹介してきました。品質の向上と開発期間の短縮のためにも、ぜひVisual Studioの機能を有効に活用してみてください。

なお本稿では、Visual C# 2008 Express Editionを使って基本的なデバッグ機能について紹介してきましたが、Visual Studioの上位のエディション(Standard/Professional/Team System)には、以下のような高度な機能も用意されています。

・自動変数ウィンドウ(主要な変数を表示)
・スレッドウィンドウ(マルチスレッドのテスト可)
・メモリウィンドウ
・レジスタウィンドウ
・モジュールウィンドウ(.NET Frameworkのソースコード参照)
・逆アセンブリウィンドウ
・複数のウォッチウインドウ
・細かな条件を指定できるブレークポイント機能

また、Visual Studio2008からは、JavaScriptでのデバッグも可能となっています。

Visual Web Developer 2008でJavaScriptのステップ実行をしているところ

Visual Studioには、これ以外にも便利な機能が備わっていますので、興味がある方は、MSDNドキュメントにも目を通してみてはいかがでしょうか。