2013-07-02 240 views
-1

我有两个名为comboBox1和comboBox2的组合框。 cmbbox1中充满了我之前手动添加的项目名称。在选择cmbbox1中的项目后,我想用从数据库中提取的相应供应商填充cmbbox2。某个项目有多个供应商。在这种情况下,我想,以填补组合框2与所有的供应商允许用户选择供应商..基于另一个组合框的选择填充组合框

Dim cn As New SqlConnection 
Dim cmd As New SqlCommand 
Dim adapter As New SqlDataAdapter 
Dim dr As SqlDataReader 
Dim dt As New DataTable 

    cn.ConnectionString = ("Data Source=NIMO-HP\SQLEXPRESS;Initial Catalog=FYP_db;Integrated Security=True") 
    cmd.Connection = cn 
    cn.Open() 

    cmd.CommandText = "SELECT comName FROM TblSuppliers WHERE comSitem ='" &  ComboBox1.Text & "'" 
    dr = cmd.ExecuteReader 
    dt.Load(dr) 
    ComboBox2.Text = dt 
+0

那你有什么问题? – SysDragon

回答

0

尝试这种方式

Dim cn As New SqlConnection 
Dim cmd As New SqlCommand 
Dim adapter As New SqlDataAdapter 
Dim dt As New DataTable 
cn.ConnectionString = ("Data Source=NIMO-HP\SQLEXPRESS;Initial Catalog=FYP_db;Integrated Security=True") 
cn.Open() 
cmd.Connection = cn 
cmd.CommandText = "SELECT comName FROM TblSuppliers WHERE comSitem ='" &  ComboBox1.Text & "'" 
cmd.CommandType = CommandType.Text 
adapter.SelectCommand = cmd 
adapter.Fill(dt) 
ComboBox2.DataSource = dt 
ComboBox2.ValueMember = "comName" 
ComboBox2.DisplayMember = "comName" 
+0

非常感谢你@Manoj它真的工作.. 还有一个小事情..当我选择在combobox1中的项目2次,以前的数据也将留在那里..有没有办法删除以前的数据? – user2541172

+0

那么,你可以在ComboBox2.DataSource = dt之前使用ComboBox1.DataSource = Nothing。 – Manoj

+0

我真的很感谢你的帮助@Manoj先生。后来我找出了问题.. cz,而不是实例化方法中的sql数据连接,我已经在类的开始实例化sql连接。以便它将被所有方法共同使用。这是原因。 – user2541172

相关问题