2017-05-24 28 views
0

我有一個ListView,可以導出和導入成功。我的問題是我需要計算付款列(ListView中的最後一列)並將結果顯示在一個Label中。但是,我收到「輸入字符串格式不正確」錯誤。C#計算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); 

然而,給我一個錯誤關於使用子項作爲一個方法。很顯然這是錯的。

這裏是我的形狀面: Click here to see the Form Face

這裏是有薪列形式填充: Click here to see the Populated form

任何幫助將不勝感激。先謝謝你。

回答

3

您的最後一列包含貨幣符號。 (例如像一個空值),那麼如果你使用的decimal.Parse

total += decimal.Parse(item.SubItems[4].Text, NumberStyles.Currency); 

適當的過載如果你的最後一列包含不能既不與此重載decimal.Parse的解析值這可以解析考慮使用

decimal d;  
if(decimal.TryParse(item.SubItems[4].Text, NumberStyles.Currency, CultureInfo.CurrentCulture, out d)) 
    total += d; 

的TryParse更加故障安全,如果你沒有輸入的完全控制,因爲它不畸形輸入的情況下拋出異常。

+0

第一個工作很好。感謝您的幫助。 – NMeneses

相關問題