CodeZine(コードジン)

特集ページ一覧

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

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

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2012/11/15 14:00
目次

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);   //キー列を削除
        }

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

著者プロフィール

  • 瀬戸 遥(セト ハルカ)

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

バックナンバー

連載:ComponentZine(ComponentOne Studio)

もっと読む

All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5