PowerTools SPREAD for Windows Forms 10.0J > 開発者ガイド > セル型 > InputManセル > GcComboBox型セル > 項目の設定(GcComboBox型セル) > データソースに接続(GcComboBox型セル) |
データソースを使用してGcComboBox型セルのリストボックスに項目を設定する方法について説明します。
データベース内のデータをリストボックスに表示する場合は、DataSourceプロパティに該当するデータセットを設定します。 |
次のサンプルコードは、GcComboBox型セルの項目にデータベースの内容を設定します。
C# |
コードのコピー
|
---|---|
// DataTableオブジェクトを作成します。 string dbpath = "C:\\databind.mdb"; string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbpath; System.Data.OleDb.OleDbConnection dbConn = new System.Data.OleDb.OleDbConnection(connectionString); // 接続を開き、SELECTコマンドを実行します。 dbConn.Open(); System.Data.OleDb.OleDbCommand dbCommand = new System.Data.OleDb.OleDbCommand("SELECT * FROM Products", dbConn); // この接続でDataReaderを開き、コマンドを実行します。 System.Data.OleDb.OleDbDataReader dr = dbCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection); DataTable dataTable = new DataTable(); dataTable.Load(dr); // 接続を解放します。 dbConn.Dispose(); GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType gcComboBox1 = new GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType(); // DataTableオブジェクトをDataSourceプロパティに設定します。 gcComboBox1.DataSource = dataTable; fpSpread1.Sheets[0].Cells[0, 0].CellType = gcComboBox1; |
Visual Basic |
コードのコピー
|
---|---|
' DataTableオブジェクトを作成します。 Dim dbpath As String = "C:\databind.mdb" Dim connectionString As String = Convert.ToString("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=") & dbpath Dim dbConn As New System.Data.OleDb.OleDbConnection(connectionString) ' 接続を開き、SELECTコマンドを実行します。 dbConn.Open() Dim dbCommand As New System.Data.OleDb.OleDbCommand("SELECT * FROM Products", dbConn) ' この接続でDataReaderを開き、コマンドを実行します。 Dim dr As System.Data.OleDb.OleDbDataReader = dbCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection) Dim dataTable As New DataTable() dataTable.Load(dr) ' 接続を解放します。 dbConn.Dispose() Dim gcComboBox1 As New GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType() ' DataTableオブジェクトをDataSourceプロパティに設定します。 gcComboBox1.DataSource = dataTable FpSpread1.Sheets(0).Cells(0, 0).CellType = gcComboBox1 |
特定の列のみ表示する場合は、AutoGenerateColumns プロパティをFalseに設定します。カラムを追加し、バインドする列名をListColumnInfo クラスのDataPropertyName プロパティで設定します。
カラムを追加する方法については「カラムの設定(GcComboBox型セル)」を参照してください。
次のサンプルコードは、先のサンプルコードで接続したデータソースの特定の列のみをドロップダウンリストに表示します。
C# |
コードのコピー
|
---|---|
GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType gcComboBox1 = new GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType(); // カラムを作成します。 GrapeCity.Win.Spread.InputMan.CellType.ListColumnInfo lc1 = new GrapeCity.Win.Spread.InputMan.CellType.ListColumnInfo("製品名"); lc1.DataPropertyName = "ProductsName"; GrapeCity.Win.Spread.InputMan.CellType.ListColumnInfo lc2 = new GrapeCity.Win.Spread.InputMan.CellType.ListColumnInfo("単価"); lc2.DataPropertyName = "Price"; // GcComboBox型セルにカラムを追加します。 gcComboBox1.ListColumns.Add(lc1); gcComboBox1.ListColumns.Add(lc2); // 自動カラム生成を禁止し、データソースに接続します。 gcComboBox1.AutoGenerateColumns = false; gcComboBox1.DataSource = dataTable; fpSpread1.Sheets[0].Cells[0, 0].CellType = gcComboBox1; |
Visual Basic |
コードのコピー
|
---|---|
Dim gcComboBox1 As New GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType() ' カラムを作成します。 Dim lc1 As New GrapeCity.Win.Spread.InputMan.CellType.ListColumnInfo("製品名") lc1.DataPropertyName = "ProductsName" Dim lc2 As New GrapeCity.Win.Spread.InputMan.CellType.ListColumnInfo("単価") lc2.DataPropertyName = "Price" ' GcComboBox型セルにカラムを追加します。 gcComboBox1.ListColumns.Add(lc1) gcComboBox1.ListColumns.Add(lc2) ' 自動カラム生成を禁止し、データソースに接続します。 gcComboBox1.AutoGenerateColumns = False gcComboBox1.DataSource = dataTable FpSpread1.Sheets(0).Cells(0, 0).CellType = gcComboBox1 |