2013-03-15 61 views
-3

我想循環我的列表框,以便顯示一個名稱,然後顯示它旁邊的分數。在列表框中循環

有沒有辦法做到這一點?

MySqlConnection myConn = new MySqlConnection(connStr); 

DataTable dTable = new DataTable(); 

string squery = "SELECT * FROM highscore"; 
MySqlDataAdapter dAdapter = new MySqlDataAdapter(squery, myConn); 

dAdapter.Fill(dTable); 
dAdapter.Dispose(); 

lstNames.DataSource = dTable; 
lstNames.DisplayMember = "Name"; 
lstNames.ValueMember = "Name"; 
+0

,對不對? – Sinatr 2013-03-15 11:14:35

+0

你可以參考這個http://stackoverflow.com/questions/380451/how-do-i-do-i-loop-through-items-in-a-list-box-and-then-remove-that-item – user2168290 2013-03-15 11:14:43

+0

你不能在SQL中執行它嗎? 「SELECT DisplayName = ...,* FROM highscore」然後綁定到DisplayName ... – 2013-03-15 11:15:18

回答

0

試試這個

for (int i = 0; i < lstFields.Items.Count; i++) 
     { 
      var item = lstNames.Items[i] ; 
      // Do with current item now 
     } 
1

而是通過循環,並在列表框中添加項目,你可以從你的查詢關鍵詞,比如獲得格式化/連接的結果:

對於MySQL,你需要使用CONCAT方法進行連接。

SELECT CONCAT(`Name` + ' ' + `Score`) AS `NAMESCORE`, * from highscore; 

然後:

lstNames.DisplayMember = "NAMESCORE"; 
lstNames.ValueMember = "NAMESCORE"; 
你想2列在列表框中顯示`name`和`score`
+0

感謝您的回答,但我已經嘗試了這種方法,並且我無法讓它正常工作,所以我已經恢復到了我將首先嚐試的方式,我只會在列表框中返回'System.Data.Datarowview' – 2013-03-15 11:16:55

+0

@CainNeal,錯過了你正在使用MySql,你需要調用CONCAT方法來連接列,嘗試編輯後的查詢。 – Habib 2013-03-15 11:18:10

+0

@CainNeal放置了一個斷點並查看VS中Data Visualizer中的數據表,查看您獲得的連接列。 – Habib 2013-03-15 11:23:38