MESCIUS InputMan for Windows Forms 12.0J
データソースに接続

データソースを使用してコンボコントロールのリストボックスに項目を設定する方法について解説します。Items プロパティにコレクションを追加して項目を設定する方法については「コレクションに追加」を参照してください。
なお、接続するデータベースは、製品に付属しているSample.mdbを前提にしています。

データベース内のデータをリストボックスに表示する場合は、DataSourceプロパティに該当するデータセットを設定します。


データ ソース構成ウィザードによる接続

プロジェクトにデータソースを追加する

データ ソース構築ウィザードを使用してプロジェクトにデータソースを追加します。

  1. [プロジェクト]または[データ]メニューの[新しいデータ ソースの追加(N)]を選択します。
  2. 「データ ソース構成ウィザード」が起動したら「データベース」を選択して〈次へ〉ボタンをクリックします。
  3. 「データベース モデルの選択」画面で「データセット」を選択しして〈次へ〉ボタンをクリックします。
  4. 「データ接続の選択」画面で〈新しい接続〉ボタンをクリックします。
  5. 「接続の追加」ダイアログで、次のように選択し、[接続のテスト]ボタンを押して接続を確認します。
    • データ ソース: Microsoft Access データベース ファイル
    • データベース ファイル名: Sample.mdb
  6. 〈OK〉ボタンをクリックします。
  7. 「データ接続の選択」画面で〈次へ〉ボタンをクリックします。
  8. プロジェクトへデータファイルをコピーするかどうかを確認するメッセージボックスが表示されたら〈はい〉をクリックします。
  9. 「接続文字列をアプリケーション構成ファイルに保存する」画面で〈次へ〉ボタンをクリックします。
  10. 「データベース オブジェクトの選択」画面で、「データセット内に指定するデータベース オブジェクト」から「会社」テーブルをチェックし、〈完了〉ボタンをクリックします。

DataSource プロパティを設定する

データベース内のデータをコンボコントロールに表示する場合は、データベースから作成したDataSet をDataSource プロパティに設定します。 AutoGenerateColumns プロパティがTrueに設定されていると、コンボコントロールは、DataSouce プロパティを設定するだけで自動的にカラムが生成されてデータが接続されます。

データ ソースウィンドウからドラッグ&ドロップする

前項のようにプロパティを設定するほかに、データソースウィンドウからドラッグ&ドロップして簡単にデータに接続したコントロールを貼り付けることもできます。

  1. 「データソース」ウィンドウを開き新しいデータソースを追加します。ここでは、製品付属のSample.mdbの「コンボ」テーブルを追加したと仮定し説明します。
  2. 「データソース」ウィンドウに「コンボ」テーブルが追加されたことを確認します。
  3. 「コンボ」のドロップダウンメニューから [GcComboBox] を選択します。


    [GcComboBox] がメニューに表示されない場合、[カスタマイズ] で表示されるダイアログで「GcComboBox」を有効にします。
  4. 「データソース」ウィンドウから「コンボ 」をフォームにドラッグ&ドロップします。
  5. コンボテーブルに接続したコンボコントロールがフォームに貼り付けられます。
コーディングによる接続

以下は、コーディングでデータベースの内容をコンボコントロールに表示する例です。

Imports System.Data.OleDb
Imports GrapeCity.Win.Editors

' DataSetオブジェクトを作成します。
Friend aConn As OleDbConnection = New OleDbConnection( _
    "Provider=Microsoft.Jet.OLEDB.4.0;" _
    + "Data Source= C:\Program Files\InputManWin8\Data\Sample.mdb;")
Friend aDA As OleDbDataAdapter = New OleDbDataAdapter( _
    "SELECT * FROM [会社]", aConn)
Friend aDS As DataSet = New DataSet()
aDA.Fill(aDS)

' DataSetオブジェクトをDataSourceプロパティに設定します。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    ' DataSetオブジェクトを設定します。
    GcComboBox1.DataSource = aDS.Tables(0)
End Sub
using System.Data.OleDb;
using GrapeCity.Win.Editors;

// DataSetオブジェクトを作成します。
private OleDbConnection aConn = new OleDbConnection(
    "Provider=Microsoft.Jet.OLEDB.4.0;"
    + "Data Source= C:\\Program Files\\InputManWin8\\Data\\Sample.mdb;");
private OleDbDataAdapter aDA  = new OleDbDataAdapter(
    "SELECT * FROM [会社]", aConn);
private DataSet aDS = new DataSet();
aDA.Fill(aDS);

// DataSetオブジェクトをDataSourceプロパティに設定します。
private void button1_Click(object sender, System.EventArgs e)
{
    // DataSetオブジェクトを設定します。
    gcComboBox1.DataSource = aDS.Tables[0];
}

特定のデータのみ表示する

特定フィールドのデータのみ表示する場合は、AutoGenerateColumns プロパティをFalseに設定します。カラムを追加し、バインドするデータのプロパティ名をListColumn クラスのDataPropertyName プロパティで設定します。

カラムを追加する方法については「カラムの設定」を参照してください。

次のサンプルコードでは、前項で接続したデータソース(会社テーブル)の特定のデータをコンボコントロールのドロップダウンリストに表示する例を示します。

' 自動カラム生成を禁止し、データソースに接続します。
GcComboBox1.AutoGenerateColumns = False
GcComboBox1.DataSource = Me.会社BindingSource

' カラムを作成します。
Dim lc1 As New GrapeCity.Win.Editors.ListColumn("会社名")
lc1.DataPropertyName = "会社名"
Dim lc2 As New GrapeCity.Win.Editors.ListColumn("電話番号")
lc2.DataPropertyName = "TEL"

' コンボコントロールにカラムを追加します。
GcComboBox1.ListColumns.Add(lc1)
GcComboBox1.ListColumns.Add(lc2)
// 自動カラム生成を禁止し、データソースに接続します。
gcComboBox1.AutoGenerateColumns = false;
gcComboBox1.DataSource = this.会社BindingSource;

// カラムを作成します。
GrapeCity.Win.Editors.ListColumn lc1 = new GrapeCity.Win.Editors.ListColumn("会社名");
lc1.DataPropertyName = "会社名";
GrapeCity.Win.Editors.ListColumn lc2 = new GrapeCity.Win.Editors.ListColumn("電話番号");
lc2.DataPropertyName = "TEL";

// コンボコントロールにカラムを追加します。
gcComboBox1.ListColumns.Add(lc1);
gcComboBox1.ListColumns.Add(lc2);
関連トピック

 

 


© MESCIUS inc. All rights reserved.