2016-12-12 3 views
0

Я просто получаю последнюю строку, когда я это сделать, как показано нижес # 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

Это, как ожидается. Вы перебираете результаты и заменяете содержимое TextBox текущим значением в цикле. Таким образом, в текстовом поле будет отображаться только значение последней записи.

Если вы хотите, чтобы все записи в текстовом поле, то вам нужно что-то вроде этого

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

На основе Microsoft MSDN 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- разработчики-марка / –

Смежные вопросы