将列表放在C#WindowsForm中的文本框中

时间:2018-11-14 12:25:11

标签: c# list

这是我的代码:

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个值,但仅获得1个值。我在做什么错了?

2 个答案:

答案 0 :(得分:1)

当列表完全填满后,您应该在循环后分配字符串。但是,这给出的结果与您总是在循环中覆盖它的结果相同,因此不是造成此问题的原因。

但是您在decimallist.ToString()中使用String.Join,它仅返回列表的类型名称。由于字符串实现了IEnumerable<char>,因此可以编译,但肯定不是您想要的。

您应该使用:

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

TbAmount.Text = string.Join(" ", decimallist);

答案 1 :(得分:0)

每次迭代都会替换该值,因此请移至行外并循环以下。

TbAmount.Text = string.Join(" ", decimallist);