SHOEISHA iD

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

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

ComponentZine(ComponentOne)

データベースのデータを小計つきで表示する.NETアプリケーションを作る

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

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

C1FlexGridコントロールのデータベース連結処理

 まずは、グリッドをデータベースに連結する処理を作成します。この処理は、ボタン「データベースの読み込み」のClickイベントハンドラに作成します。

 なお、手順の詳細は記事『データベースのデータからバブルチャートを作成する.NETアプリケーションを作る』で紹介している手順とほぼ同様なので、こちらを参照してください。

 また今回も、クエリ文の入力にインプットボックスを使用します。これは、Visual BasicのInputBoxメソッドを使用しますので、C#で使う場合はプロジェクトの参照設定に「Microsoft.VisualBasic」を追加しておいてください。

C#は「Microsoft.VisualBasic」への参照を追加しておく
C#は「Microsoft.VisualBasic」への参照を追加しておく

 なお、今回はクエリ文の入力用インプットボックスに、あらかじめサンプルデータベース用のクエリ文を表示するようにし、データを読み込んだ時点でAutoResizeプロパティをTrueに設定して列幅の自動調節を行っています。

Visual Basic
Imports System.Data.OleDb
Imports C1.Win.C1FlexGrid

Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        'DBファイル名の取得と接続文字の作成
        Dim dbname As String = ""
        If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
            dbname = OpenFileDialog1.FileName
        Else
            Exit Sub
        End If

        Dim conn As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & dbname

        'SQL文の入力()
        Dim sqlstr As String = InputBox("クエリのSQL文字列を入力してください", "テーブルの取り込み", _
                                        "SELECT 収穫量一覧.* FROM 収穫量一覧;") 
        If sqlstr = "" Then
            Exit Sub
        End If

        'クエリを実行しDataSetにデータを取り込む
        Dim data_adap As OleDbDataAdapter = New OleDbDataAdapter(sqlstr, conn)
        Dim data_sset As DataSet = New DataSet()

        data_adap.Fill(data_sset)

        'グリッドにデータを接続
        C1FlexGrid1.AutoResize = True
        C1FlexGrid1.DataSource = data_sset.Tables(0)
        C1FlexGrid1.Cols.Remove(1)   'キー列を削除

    End Sub
C#
using System.Data.OleDb;
using C1.Win.C1FlexGrid;

namespace FG_subtotal_cs
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //DBファイル名の取得と接続文字の作成
            string dbname = "";
            if(openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                dbname = openFileDialog1.FileName;
            }
            else
            {
                return;
            }
            string conn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + dbname;

            //SQL文の入力
            string sqlstr = Microsoft.VisualBasic.Interaction.InputBox(
                                        "クエリのSQL文字列を入力してください", "テーブルの取り込み", 
                                        "SELECT 収穫量一覧.* FROM 収穫量一覧;", 200, 100);
            if(sqlstr == "")
            {
                return;
            }

            //クエリを実行しDataSetにデータを取り込む
            OleDbDataAdapter data_adap = new OleDbDataAdapter(sqlstr, conn);
            DataSet data_sset = new DataSet();

            data_adap.Fill(data_sset);

            //グリッドにデータを接続
            c1FlexGrid1.AutoResize = true;
            c1FlexGrid1.DataSource = data_sset.Tables[0];
            c1FlexGrid1.Cols.Remove(1);   //キー列を削除
        }

次のページ
小計とアウトラインツリーの実行処理

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

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

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング