2013-06-28 176 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