|
分類:[.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として正常に接続されております。
|