2016-12-12 32 views
0

我剛開始的最後一行時,我不喜歡它下面C#的MySQL得到所有行

我怎樣才能得到

baglanti.Open(); 
     MySqlCommand cmd = new MySqlCommand("select * from lisans", baglanti); 
     int Count = Convert.ToInt32(cmd.ExecuteScalar()); 

     if (Count != 0) 
     { 

     MySqlDataReader oku = cmd.ExecuteReader(); 
     while (oku.Read()) 
     { 
       textBox1.Text= oku.GetString("mac"); 
     } 

回答

1

這是預期中的所有行。循環播放結果並將文本框的內容替換爲循環中的當前值。這樣,只有最後一條記錄的值纔會在文本框中看到。

如果你想在一個文本框的所有記錄,那麼你需要基於微軟MSDN這樣

List<string> macs = new List<string>(); 
while (oku.Read()) 
{ 
     macs.Add(oku.GetString("mac")); 
} 
textBox1.Text = string.Join(",", macs); 
0

東西https://msdn.microsoft.com/en-us/library/system.text.stringbuilder(v=vs.110).aspx

考慮使用這樣的條件下,StringBuilder類:

•當您希望應用程序在設計時對字符串進行未知數量的更改(例如,當您使用循環來連接包含用戶輸入的隨機數字符串時)。

•當您希望您的應用程序對字符串進行大量更改時。

List類是ArrayList類的通用等效物。 https://msdn.microsoft.com/en-us/library/6sh2ey19(v=vs.110).aspx

StringBuilder sb = new StringBuilder(); 
while (oku.Read()) 
{ 
    sb.Append(oku.GetString("mac")); 
    sb.Append(";"); 
} 
textBox1.Text = sb.ToString(); 
+0

您是否有證據表明StringBuilder更好? – Steve

+0

請參閱http://stackoverflow.com/questions/10076454/string-builder-vs-lists和https://blog.goyello.com/2013/01/07/8-most-common-mistakes-c-開發商,化妝/ –