こんにちは、バインディング ソースから適切に取り込まれたコンボボックスがあります。したがって、問題は、データグリッドの「名前」の列に、入力されたドロップダウンリストからの値のみが表示されることです。ドロップリストと同じでない値は空で表示されます。誰かが理由を教えてもらえますか? 以下は、コンボボックスのコードです。私は印刷できませんが、説明は次のようになります。リストには John 、 Jake 、 Jay の 3 つの名前がありますが、列にはそれぞれのセルに 10 を超える name があります。オンロード時の問題は、他の名前を表示していません。
Dim c4 As New DataGridViewComboBoxColumn()
c4.HeaderText = "Name"
c4.Name = "Name"
c4.DataPropertyName = "Name"
c4.DisplayMember = "NamesWithJ"
c4.ValueMember = "NamesWithJ"
c4.DisplayStyleForCurrentCellOnly = False
c4.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing
c4.FlatStyle = FlatStyle.Standard
c4.SortMode = DataGridViewColumnSortMode.Automatic
c4.DataSource = AddtBndSrc
c4.Width = 100
Me.DataGrid.Columns.Add(c4)
そして、これがバインディングソースを作成して値を入力するコードです。接続は完全に表示され、エラーはありません。一部の行でコンボボックス列がnullを表示しているだけです
Try
con = New SqlConnection(strConnection)
cib.Open()
adoAAda = New SqlDataAdapter(StrAddNameQuery, con)
adoAddtRs = New DataSet
adoAAda.Fill(adoAddtRs)
Dim tableAddt As DataTable = adoAddtRs.Tables(0)
Dim colum As DataColumn = tableAddt.Columns(0)
tableAddt.PrimaryKey = New DataColumn() {tableAddt.Columns(0)}
AddtBndSrc.DataSource = adoAddtRs.Tables(0)
con.close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Try
' connection procedure
con = New SqlConnection(strConnection)
con.Open()
adoPAda = New SqlDataAdapter(StrProductQuery, con)
adoProductsRS = New DataSet
adoPAda.Fill(adoProductsRS)
Dim tableProduct As DataTable = adoProductsRS.Tables(0)
Dim colum As DataColumn = tableProduct.Columns(0)
tableProduct.PrimaryKey = New DataColumn() {tableProduct.Columns(0)}
productBndSrc.DataSource = adoProductsRS.Tables(0)
MsgBox(tableProduct.Columns(0).ColumnName.ToString)
con.close
datagridview.Datasource = productBndSrc
Catch ex As Exception
MsgBox(ex.Message)
End Try