SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(ComponentOne)

データベースのデータからバブルチャートを作成する.NETアプリケーションを作る

「PowerTools ComponentOne Studio 2012J」のC1Chart2D/C1FlexGridコントロールを使った.NETアプリケーションの作成 その2

  • X ポスト
  • このエントリーをはてなブックマークに追加

データベースの連結方法

 C1FlexGridコントロールは、ADO.NETデータソースオブジェクト(DataTable、DataView、DataSet、DataViewManagerなど)へのデータ連結をサポートします。

 グリッドをデータソースに連結するには、データソースオブジェクトを作成し、グリッドのDataSourceプロパティに設定します。データソースオブジェクトが複数のテーブルを持っている場合は、使用テーブルを指定する文字列をDataMemberプロパティに設定します。また、SetDataBindingメソッドを使うと、両方のプロパティを同時に設定することもできます。

 新しいデータソースをグリッドに割り当てると、グリッドは自動的にその列を更新してデータソース内で使用可能な列に連結します。

データソースを連結する方法

 データソースをグリッドに連結する方法は2通りあります。

 1つは、Visual Studioのデータソース構成ウィザードを使用してC1FlexGridコントロールにデータソースを連結する方法です。この方法を使うと、ウィザードの質問に答えていくだけで、簡単にデータベースをグリッドに連結できます。ただし、この方法はアプリケーションに1つのデータベースファイルを固定してしまいますので、複数のデータベースを切り替えてグリッドにデータを表示するのには向いていません。

C1FlexGridコントロールのスマートタグからデータソースの追加を選ぶ
C1FlexGridコントロールのスマートタグからデータソースの追加を選ぶ
データソース構成ウィザードが表示される
データソース構成ウィザードが表示される

 もう一つの方法は、コードからデータベースオブジェクトを作成し、グリッドに連結する方法です。この方法だと、例えばダイアログボックスでデータベースファイルを選んでグリッドに表示する機能を組み込むことができます。しかし、データを取り出すクエリを入力する機能も持たせないと、データベースからデータを抽出することができません。

 それぞれ、データベースを使用する目的に応じて使い分けることになります。

 今回は、ダイアログボックスでAccessのデータベースファイルを選んでグリッドに表示するようにしますので、コードからデータベース連結を行います。

データベース連結の手順

 コードからデータベースファイルをグリッドに連結するには、以下の手順をとります。

  • (1)接続文字列を作成する
  • (2)開くデータベースファイルを指定する
  • (3)クエリ文字列を作成する
  • (4)接続文字列とクエリ文字列を使用してOleDbDataAdapterオブジェクトを作成する
  • (5)OleDbDataAdapterクラスのFillメソッドでDataSetオブジェクトにクエリの結果セットを格納する
  • (6)C1FlexGridコントロールのDataSourceプロパティに、DataSetオブジェクトのテーブルを設定する

 (1)から(5)までの処理は、ADO.NETのデータベース接続処理です。これは、ウィザードを使用したデータベース連結も同じで、ウィザードがコードを書く代りをやってくれているだけです。

 (6)のコードが、クエリの結果セットをグリッドに表示するための連結処理です。C1FlexGridコントロールは、DataSourceプロパティの値が変わると、自動的にグリッドの行列を作成してセルにデータを格納し、データベースの列見出しをグリッドの列ヘッダに設定してくれるので、データベースの連結処理はたったこの1行で済みます。

 プログラマがやることは、開くデータベースファイルを指定し、データを取り出すクエリ文(SQL文)を作成するだけです。

 あとは、お好みでグリッドの各種装飾やフィルタリング、小計処理などのオプション機能を操作するコードを書いていきます。

グリッドの行列数と列ヘッダがデータベースに従って自動的に設定される
グリッドの行列数と列ヘッダがデータベースに従って自動的に設定される

GUIのデザイン

 今回は、前回作成したフォームに手を加え、データベースファイルの選択とクエリ文の入力機能を追加します。追加するコントロールは、ButtonコントロールとOpenFileDialogコントロールの2つです。クエリ文の入力は、コードからInputBoxを表示して入力してもらうようにします。

フォームのデザイン

 Buttonコントロールを1つ追加し、Clickイベントハンドラを作成します。

 OpenFileDialogコントロールは、Filterプロパティを設定しAccessデータベースファイルを選べるようにします。

OpenFileDialogコントロールの設定
プロパティ 設定値
FileName (空白)
Filter Accessファイル(*.mdb)|*.mdb
フォームのレイアウト
フォームのレイアウト

次のページ
データベース連結処理の実装

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
ComponentZine(ComponentOne)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6831 2012/10/29 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング