我将Datagridview绑定到Dataset,不幸的是其中一个字段需要是Comboboxcell。如果将DataProperty Name设置为Dataset的所需字段,则不会执行任何操作。我试过的一切只是在Comboboxcell中添加了一个项目,但无法让它在单元格中正确显示。有没有办法做到这两点 - 从Comboboxcell中的数据集行获取值并显示它?
Private da As OracleDataAdapter
Private cbAs OracleCommandBuilder
Private ds As DataSet
Dim SQL As String = "SELECT Serial,Name,Surname,Country,City from MyTable WHERE ID_Table1=" _
& Form1.DataGridView1.CurrentRow.Cells(0).Value.ToString
Try
OracleConn() 'Connection to DB
Dim cmd = New OracleCommand(SQL, OracleConn)
cmd.CommandType = CommandType.Text
da = New OracleDataAdapter(cmd)
cb = New OracleCommandBuilder(da)
ds = New DataSet()
da.Fill(ds)
My_DGV.DataSource = ds.Tables(0)
'This code here "successfully" adds item and shows It in comboboxcell
'when It's only 1 row in Dataset - when they are more rows, Datagridview gets
'duplicated rows and duplicated items in comboboxcell + only comboboxcell
'value of 1st row is displayed.
For i As Integer = 0 To ds.Tables(0).Rows.Count - 1
Dim someVar As Integer = Integer.Parse(ds.Tables(0).Rows(i)(1).ToString())
Column5.Items.Add(someVar)
Dim CellBox As DataGridViewComboBoxCell = CType(My_DGV.Rows(0).Cells(0), DataGridViewComboBoxCell)
'Select Item
CellBox.Value = someVar
Next
我现在很多天都在努力解决这个问题,非常感谢任何帮助!
在字段中获取数据集行值" Combobox" (即" Serial"来自SQL查询的字段)并在组合框中显示该值,以及所有只是文本框字段的字段(此部分已全部正常工作);
当用户点击组合框时,它将再次加载项目(使用" SELECT *来自My Table") - 这样用户可以从该表中选择任何其他记录并将其保存到这个"加入表" Datagrid(在组合框上选择所有其他字段自动填充)。它将更新行或用户只需在datagridview中添加一个新行。我已经有了这个解决方案,我只需要第一部分。