|  | 分類:[.NET 全般]
 
 はじめまして。
 現在DataGridViewを使用したフォームを作成しているのですが、
 DataGridViewのある列をコンボボックスにして、
 その値はデータベースから取得したものを表示させるといった部分を実装しているのですが、
 関数を作成してフォームが表示させてもコンボボックスにアイテムが設定されずに困っております。
 どなたかお知恵をお貸しいただけないでしょうか?
 
 <関数>
 Public Function createDGVComboBox(ByVal con As SqlConnection, ByVal sql As String) As  DataGridViewComboBoxColumn
 Dim daCmb As SqlDataAdapter
 Dim dsCmb As DataSet = New DataSet
 Dim dtCmb As DataTable = New DataTable
 Dim dgvCmb As DataGridViewComboBoxColumn = New DataGridViewComboBoxColumn
 
 Try
 daCmb = New SqlDataAdapter(sql, con)
 daCmb.Fill(dsCmb, "コンボアイテム")
 dtCmb = dsCmb.Tables("コンボアイテム")
 With dgvCmb
 .DataSource = dtCmb ←Rows.Countは10件です
 .ValueMember = dtCmb.Columns(0).ColumnName
 .DisplayMember = .ValueMember
 End With
 Catch ex As Exception
 dgvCmb = Nothing
 End Try
 
 createDGVComboBox = dgvCmb ←Items.Countが0になってしまいます
 End Function
 
 <関数呼び出し元>
 Dim dgvCmbCol As DataGridViewComboBoxColumn = New DataGridViewComboBoxColumn
 Dim sql as String= "SELECT アイテム FROM テーブル"
 with datagridview
 dgvCmbCol = createDGVComboBox(con, sql)
 dgvCmbCol.Name = "工事1"
 dgvCmbCol.HeaderText = "項目"
 .Columns.Add(dgvCmbCol)
 End With
 ※conはSQLConnectionとして正常に接続されております。
 
 
 |