Copyright © GrapeCity inc. All rights reserved.
True DBGrid for WinForms
チュートリアル2:C1TrueDBGrid で SQL クエリーの結果を使用する
チュートリアル > チュートリアル2:C1TrueDBGrid で SQL クエリーの結果を使用する

True DBGrid for WinForms の重要な機能として、実行時にデータベースに対する変更を自動的に検出できることがあります。このチュートリアルでは、True DBGrid for WinFormsを使用して、アドホックなSQLクエリーの結果を表示する方法を学びます。さらに、実行中にデータセットへの接続をセットアップする方法について簡単に説明します。設計時に列のプロパティを特に定義しなくても、グリッドが自動的にフィールドレイアウトの変更に応答できることに注意してください。レイアウトがすでに定義されている場合は、グリッドのフィールドのクリアコンテキストメニューコマンドを使って削除します。これにより、実行時にグリッドが自動的に自分自身を設定します。

以下の手順を実行します。

  1. 新しい.NET プロジェクトを開始します。
  2. C1TrueDBGrid 、コマンドボタンおよびテキストボックスをフォームに配置します。コマンドボタンの Text プロパティをSQL文実行に変更し、テキストボックスの Text プロパティをSQL文:に設定します。
  3. C1TrueDBGrid タスクメニューで、データソースの選択ドロップダウン矢印をクリックし、ドロップダウンボックスからプロジェクトのデータソースの追加リンクを選択します。 データソース構成ウィザードが表示されます。データソースの種類の選択ページ上で選択されているデフォルト設定であるデータベースをそのままにして、次へをクリックします。新しい接続ボタンをクリックし、新しい接続を作成するか、ドロップダウンリストから1つ選択します。データベースオブジェクトの選択ページで、Customers テーブルを選択し、すべてのフィールドを含めます。データセット名ボックスに DsCustomers と入力し、完了をクリックしてウィザードを終了します。新しいデータソースをプロジェクトに追加する方法については、手順 2:DataSet への C1TrueDBGrid の連結を参照してください。
  4. VisualStudio は、Form_Load イベントに次のコードを追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Me.CustomersTableAdapter.Fill(Me.DsCustomers.Customers)
    

    C# コードの書き方

    C#
    コードのコピー
    this.CustomersTableAdapter.Fill(this.DsCustomers.Customers);
    
  5. Button1Click イベントに次のコードを追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
        Dim sqlStr As String = TextBox1.Text
        Dim da as Oledb.OleDbDataAdapter = New Oledb.OleDbDataAdapter (sqlStr, Me.CustomersTableAdapter.Connection)
        Dim ds As DataSet = New DataSet()
     
        ds.Clear()
        Try
            da.Fill(ds, "クエリー結果")
            Me.C1TrueDBGrid1.DataSource = Nothing
            Me.C1TrueDBGrid1.ClearFields()
            Me.C1TrueDBGrid1.SetDataBinding(ds.Tables("mySQL"), "", False)
        Catch
            MessageBox.Show("SQL文のエラー")
        End Try
    End Sub
    

    C# コードの書き方

    C#
    コードのコピー
    private void button1_Click(System.object sender,  System.EventArgs e)
    {
     
        string  sqlStr = TextBox1.Text;
        da as Oledb.OleDbDataAdapter = New Oledb.OleDbDataAdapter (sqlStr, this.CustomersTableAdapter.Connection);
        DataSet  DataSet ds = new DataSet();
     
        ds.Clear();
        try 
        {
            da.Fill(ds, "クエリー結果");
            this.c1TrueDBGrid1.DataSource = null; 
            this.c1TrueDBGrid1.ClearFields();
            this.c1TrueDBGrid1.SetDataBinding(ds.Tables["mySQL"], "", false);
        } 
        catch () 
        {
            MessageBox.Show ("SQL文のエラー");
        }
    }
    

プログラムを実行し、動作を確認します。

チュートリアル1:C1TrueDBGrid を DataSet に連結すると同様に、True DBGrid for WinForms は、DataSet からデータベーススキーマ情報を取得し、データベーステーブル内のすべてのフィールドのデータを表示するように自動的に自分自身を設定します。フィールド名がデフォルトの列ヘッダとして使用されます。

  1. TextBox コントロールに次のSQL文を追加します:

    Select * from Customer

    SQLの実行コマンドボタンを押します。デフォルト表示と同様にCustomerテーブルのすべてのフィールドが表示されます。

  2. TextBox コントロールに次のSQL文を追加します。

    Select Company from Customer

    SQLの実行ボタンを押します。グリッドにCompanyフィールドに属する会社名列が表示されます。

  3. TextBox コントロールに以下のSQL文を追加します:

    Select LastName, Company from Customer

    SQLの実行コマンドボタンを押します。上のSQL文と同様にグリッドに指定された列(この場合はCompanyフィールドに属する会社列とLastNameフィールドに属する列)が表示されます。

  4. TextBox コントロールに以下のSQL文を追加します:

    Select Count(*) from Customer

    SQLの実行コマンドボタンを押します。上のSQL文をは、集計関数、Count(*):SQLを使用して、Customer テーブルのレコードの合計数を返します。SQL の結果が一連のれ湖度ではなくても、リストの1つの列にレコードの数が正しく表示されます。デフォルトでは、列ヘッダとしてExpr1000が使用されます。これは、式の結果が表示されていることを表示します。

  5. TextBox コントロールに以下のSQL文を追加します:

    Select UCase(LastName) as ULAST, UCase(FirstName) AS UFIRST from Customer

    SQLの実行コマンドボタンを押します。上のSQL文は名前フィールドとフィールドを大文字で表示する2つの計算列を生成します。また、列ヘッダには、(割り当てられた)計算列名として ULASTUFIRST が表示されます。

  6. TextBox コントロールに以下のSQL文を追加します:

    SELECT * FROM Customer WHERE FirstName = "Jerry"

    SQLの実行コマンドボタンを押します。上のSQL文は、名前列がJerryであるレコードだけを表示します。

  7. TextBox コントロールに以下のSQL文を追加します:

    SELECT * FROM Customer ORDER BY LastName

    SQLの実行コマンドボタンを押します。上のSQL文は、フィールドのアルファベット順でレコードを表示します。

SQL 文を使用して、2つのデータベーステーブルを結合することもできます。チュートリアル3: 複数の C1TrueDBGrid コントロールをリンクするを参照してください。

これでチュートリアル 2は終了です。