我有一个可以成功导出和导入的列表视图。 我的问题是我需要计算付款列(ListView 中的最后一列(并在标签中显示结果。 但是,我收到"输入字符串格式不正确"错误。
这是我的代码:
private void DisplayWeeklyEarnings()
{
decimal total =0;
foreach (ListViewItem item in lvTimeSheet.Items)
{
total += Convert.ToDecimal(item.SubItems[4].Text);
}
lblEarnings.Text = String.Format("{0:C2}", total);
}
我也试过:
total += Decimal.Parse(item.Subitems[4].Text);
其他人建议使用:
total += Decimal.Parse(item.Subitems(4).Text);
但是,这给了我一个关于使用子项作为方法的错误。所以显然这是错误的。
这是我的表格面孔:单击此处查看表单面
以下是填充了付薪列的表单:单击此处查看填充表单
任何帮助将不胜感激。 提前谢谢你。
最后一列包含货币符号。如果使用适当的十进制重载,则可以解析此内容。解析
total += decimal.Parse(item.SubItems[4].Text, NumberStyles.Currency);
如果最后一列包含的值也无法通过此十进制重载进行解析。解析(例如空白值(,然后考虑使用
decimal d;
if(decimal.TryParse(item.SubItems[4].Text, NumberStyles.Currency, CultureInfo.CurrentCulture, out d))
total += d;
如果您没有对输入的完全控制,TryParse 的故障安全性更高,因为它不会在输入格式错误的情况下引发异常。