положить список в текстовое поле в c # windowsform - PullRequest
0 голосов
/ 14 ноября 2018

Итак, это мой код:

MySqlDataReader msdr = mysqlquery.Reader("SELECT * FROM amount WHERE id=@id", "@id", i);
List<decimal> decimallist = new List<decimal>();

while (msdr.Read())
{
   decimallist.Add(msdr.GetDecimal(1));
   TbAmount.Text = string.Join(" ", decimallist.ToString());
}

, поэтому TbAMount должен получить 2 значения, но он получит только одно.Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Каждая итерация заменяет значение, поэтому перемещается ниже строки из цикла.

TbAmount.Text = string.Join(" ", decimallist);
0 голосов
/ 14 ноября 2018

Вы должны назначить строку после цикла, когда список заполнен полностью.Однако это дает тот же результат, как если бы вы всегда перезаписывали его в цикле, поэтому причина этой проблемы не является.

Но вы используете decimallist.ToString() в String.Join, который просто возвращает имя типа списка.Поскольку строка реализует IEnumerable<char>, она компилируется, но это, конечно, не то, что вам нужно.

Вы должны использовать:

while (msdr.Read())
{
   decimallist.Add(msdr.GetDecimal(1));
}

TbAmount.Text = string.Join(" ", decimallist);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...