2012-06-28 45 views
0

所以我开发了一个小程序,我想从一个SQL表中导入DATAS到一个DataGridView,作为列的组合框从另一个表在同一个数据库填补了一个。添加一个ComboBox一个DataGridView

这是我当前的代码:

Public Sub Load_black(Optional ByVal linhas As Integer = 20) 
    i = 0 
    black.Columns.Clear() 
    black.Rows.Clear() 
    black.Clear() 
    ProdC.Open() 
    Query = "SELECT * FROM [plano2] where familia like '%tpa%'ORDER BY ordem" 
    myCMD = New SqlClient.SqlCommand(Query, ProdC) 
    myDRR = myCMD.ExecuteReader 
    If myDRR.HasRows = True Then 
     black.Columns.Add("Order", GetType(String)) 
     black.Columns.Add("Number", GetType(String)) 
     black.Columns.Add("Name", GetType(String)) 
     black.Columns.Add("Cut Style", GetType(String)) 
     black.Columns.Add("Cicles/cm", GetType(String)) 
     black.Columns.Add("Leght", GetType(String)) 
     black.Columns.Add("Colors", GetType(String)) 
     black.Columns.Add("Date", GetType(String)) 
     While myDRR.Read And i < linhas 
      black.Rows.Add(myDRR.Item("ordem").ToString, myDRR.Item("ref").ToString, myDRR.Item("design").ToString, myDRR.Item("tipodecorte").ToString, myDRR.Item("passagenscm").ToString, myDRR.Item("largura").ToString, myDRR.Item("numcores").ToString, myDRR.Item("dataentrada").ToString) 
      str_pb_ref(i) = myDRR.Item("ref").ToString 
      i = i + 1 
     End While 
    Else 
     MessageBox.Show("Table is empety.") 
    End If 
    myDRR.Close() 
    ProdC.Close() 
    grd_black.DataSource = black 
End Sub 

我想要做的就是添加一个新行与组合框。

我已经尝试过很多方法,但无论我在数据库表中的值是由我与其他表值的组合框。

感谢

回答

0

前是成立的列在窗体设计器中的DataGridView,设置具体的组合框列我已经解决了这个问题的方法。

然后使用SELECT DISTINCT查询填充组合框列选项。

如果您事先想要,您可以隐藏列标题,直到数据位于datagridview中。

它有点驴更改列类型代码为每列类型是不同的列类型的对象 你必须做的

System.Windows.Forms.DataGridViewComboBoxColumn 

然后一个新的实例添加到DataGridView

(第一篇文章 - 任何好的?)

+0

我试过了,但它的功效。我刚拿到一张空白的柱子。并且没有来自表格的数据,我正试图加载。 – m1aw

+0

啊我还不够清楚。你尝试过哪种技术? 您需要制作组合框列,并使用选择不同的查询来获取下拉部件的选项。 然后把你的数据从你已经拥有的查询 –

+0

的那一列中删除,那我怎么能同步数据呢? – m1aw