根据数据库中另一个组合框的选择,在vb.net中填充组合框

时间:2016-04-10 17:26:24

标签: sql-server vb.net

我有2个组合框和几个标签,我想从我的一个数据库列中取出数据,即drug_group,之后我想从第一个组合框中选择一个药物组时应在第二个组合框中填充数据库中相应的药物名称。之后,标签应该提取药物信息。我的问题是第一个组合框确实填充了,但它有点重复一些数据。然后当我从第一个组合框中选择任何项目时,将显示相同的项目。下面是我的代码和截图到目前为止我的进展。我只是想知道如何去做,谢谢。

Private Sub storeform_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    'TODO: This line of code loads data into the 'PhermacyDataSet.tblsolddrugs' table. You can move, or remove it, as needed.
    Me.TblsolddrugsTableAdapter.Fill(Me.PhermacyDataSet.tblsolddrugs)
    'TODO: This line of code loads data into the 'PhermacyDataSet1.tbldrug' table. You can move, or remove it, as needed.

    'Drug Group Combo box
    Dim connString As String = "Data Source=.\SQLEXPRESS;Database=phermacy; Integrated Security = true"
    Dim conn As New SqlConnection(connString)
    Dim strSQL As String = "SELECT * FROM tbldrug"
    Dim da As New SqlDataAdapter(strSQL, conn)
    Dim ds As New DataSet
    da.Fill(ds, "tbldrug")

    With cmbdruggp
        .DataSource = ds.Tables("tbldrug")
        .DisplayMember = "Drug_group"
        .ValueMember = "Drug_ID"
        .SelectedIndex = 0
    End With

    'Drug Name combo
    Dim strSQL1 As String = "SELECT Drug_Name FROM tbldrug WHERE Drug_group =" & Me.cmbdruggp.SelectedValue
    Dim da1 As New SqlDataAdapter(strSQL1, conn)
    Dim ds1 As New DataSet
    da.Fill(ds1, "tbldrug")

    With cmbdrugname
        .DataSource = ds1.Tables("tbldrug")
        .DisplayMember = "Drug_Name"
        .ValueMember = "Drug_group"
        .SelectedIndex = 0
    End With


End Sub

My form layout

3 个答案:

答案 0 :(得分:0)

您需要为第一个组合框的SelectedIndexChanged事件实现事件处理程序,并在其中放置查找第二个组合框内容的代码。您可以通过双击设计器中的药物组合框来轻松创建事件处理程序。

答案 1 :(得分:0)

在每个新项目加载之前使用方法cmbdrugname.Items.Clear(),而不是您没有多个相同的项目。

答案 2 :(得分:0)

尝试创建一个selectedindexchange(通过双击组合框)类型代码,如:

if cboName.text = "value" then

cboName.add.item(value) 

end if