Datagridview - 将Comboboxcell绑定到数据集行并显示值?

时间:2016-11-21 13:33:59

标签: vb.net oracle datagridview

我将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

我现在很多天都在努力解决这个问题,非常感谢任何帮助!

编辑(我在Form_Load上输出的图片): enter image description here

  1. 在字段中获取数据集行值" Combobox" (即" Serial"来自SQL查询的字段)并在组合框中显示该值,以及所有只是文本框字段的字段(此部分已全部正常工作);

  2. 当用户点击组合框时,它将再次加载项目(使用" SELECT *来自My Table") - 这样用户可以从该表中选择任何其他记录并将其保存到这个"加入表" Datagrid(在组合框上选择所有其他字段自动填充)。它将更新行或用户只需在datagridview中添加一个新行。我已经有了这个解决方案,我只需要第一部分。

0 个答案:

没有答案