2017-05-31 40 views
0

enter image description here我試圖在組合框中顯示所有項目,但是當我運行我的應用程序時,我只能獲得一個項目。你能不能幫我請,這裏是我的代碼爲什麼我的組合框只顯示一個項目? c#mysql

try 
{ 
    MySqlConnection conection = new MySqlConnection("server = 127.0.0.1; database = sistemalaboratorio; Uid = root; pwd =;"); 
    string selectQuery = "SELECT clavemateria FROM materia"; 
    conection.Open(); 
    MySqlCommand command = new MySqlCommand(selectQuery, conection); 
    MySqlDataReader reader = command.ExecuteReader();      

    while (reader.Read()); 
    {      
     comboBox1.Items.Add(reader["clavemateria"].ToString()); 
    } 
} catch (Exception ex) 
{ 
    MessageBox.Show(ex.Message); 
} 
+0

查詢的結果是什麼? –

+0

我只得到我的查詢的最後結果。 –

+0

嘗試使用'SELECT COUNT(*)clavemateria FROM materia'運行它 – user5226582

回答

0

假設頁面加載組合框在此之前讀的發生,確保您的本草表中有超過1分的紀錄。

這些查詢可能usful算在你的SQL表中的記錄的情況下,你不使用SQL Management Studio中直接訪問

SELECT COUNT(*) FROM materia WITH (NOLOCK) 

- 在這裏NOLOCK是用於測試這樣的回答:沒有多,不會少

SELECT clavemateria, count(*) 
FROM materia 
GROUP BY clavemateria 

你也可以試試這個:

string qr1 = "select * from materia "; 
SqlCommand cmd1 = new SqlCommand(qr1, con); 
con.Open(); 
SqlDataReader dr1 = cmd1.ExecuteReader(); 
cmbcat.Items.Clear(); 
while (dr1.Read()) 
{ 
cmbcat.Items.Add(new Item(dr1["clavemateria"].ToString(), dr1["clavemateria"].ToString())); 
} 
con.Close(); 

或參考此示例

+0

不,它不工作,我仍然只獲得最後一個項目。 –

+0

所以這個查詢SELECT COUNT(*)FROM materia返回4的計數? –

+0

是的,它只返回4 –

相關問題