2013-06-28 175 views
1

嗯,我又有一个问题,所以我有2个组合框,第一个叫做client_number,第二个是order_number,以及当我在第一个选择客户端时尝试执行下一个第二个组合加载客户端完成的order_number。 MySQL查询是这样的:Combobox.Items.Add visual basic

SELECT 
order.number 
FROM order,client 
WHERE order.client_number=client.number and client.number=" & ComboBox1.SelectedValue 

当我运行该程序,第二个组合框加载我ORDER_NUMBER但如果客户已经做了不止一个数量级,在ORDER_NUMBER出现,但只是出现一个order_number如果客户端完成2秩序只是出现一个。我能做什么?

顺便说那

 Private Sub ComboBox3_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox3.SelectedIndexChanged 
    conexao.Open() 
    Dim strsql As String, i As Integer = 0 
    Dim o As Integer 
    o = ComboBox2.SelectedValue 
    strsql = "SELECT count(order.number),order.number FROM order,client WHERE order.client_number=client.number and client.number=" & ComboBox3.SelectedValue 
    sqlcom = New MySqlCommand(strsql, conexao) 
    dr = sqlcom.ExecuteReader 
    If Not dr.HasRows Then 
     MsgBox("not find") 
    Else 
     dr.Read() 
     ComboBox2.Items.Add(dr("order_number")) 
     'TextBox10.Text = dr(0).ToString 
    End If 
    dr.Close() 
    conexao.Close() 

End Sub 

我是用一个文本框算的编号顺序,并可以正常使用文本框,但组合犯规负载不止一个数量级

+0

如何将项目添加到组合中?这将有助于你可以显示你的代码。 –

+0

可能是'ComboBox1'中输入的值有点像'345 LIMIT 1;'? :) –

+0

我添加像这样'ComboBox2.Items.Add(dr(“order_number”))'博士是mysqldatareader – user2423011

回答

1

你需要循环遍历读者的行并添加如下项目:

If Not dr.HasRows Then 
     MsgBox("not find") 
    Else 
     While dr.Read() 
      ComboBox2.Items.Add(dr("n_enc")) 
      TextBox10.Text = dr(0).ToString 'This probably should be elsewhere! 
     End While 
    End If 

查看您的查询,我看不到“n_enc”被选中,但假设既然您说它确实在您的ComboBox中填充了单个项目,则一切正常。 此外,您可能要将此线路移动到其他地方:

TextBox10.Text = dr(0).ToString 
+0

感谢队友,这是非常感谢:) – user2423011

+0

不用担心。很高兴它被分类。 – Ric

+0

和约n_enc我葡萄牙语,所以这是在葡萄牙语我翻译成英文我忘记那部分,但无论如何,你保存我的一天:) – user2423011

0
SELECT 
order.number 
FROM order 
WHERE order.client_number=" & ComboBox1.SelectedValue 

我的代码猜这会工作

+0

没有像那不工作是一样的 – user2423011