我在下面有下面的代碼。這是很好的期望,我想讓MaxDemand成爲一個空值。但是因爲我解析一個字符串,如果我沒有放入某個值,它似乎會出錯。C#解析浮動時的空引用
異常詳細信息:System.NullReferenceException:未將對象引用設置爲對象的實例。
什麼是實現錯誤處理解決方案的最佳解決方案?我嘗試了float.TryParse,但無法讓它工作。
謝謝你關注我的問題。
protected void GridView3_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
float Cost = 0.0F;
float Consumption = 0.0F;
int InvoiceID = 0;
float MaxDemand = 0.0F;
DateTime ServiceFrom = new DateTime();
DateTime ServiceTo = new DateTime();
foreach (string key in e.NewValues.Keys)
switch (key)
{
case "TotalInvoice": Cost = float.Parse(e.NewValues[key].ToString());
break;
case "EnergyInvoiceID": InvoiceID = int.Parse(e.NewValues[key].ToString());
break;
case "Consumption": Consumption = float.Parse(e.NewValues[key].ToString());
break;
case "ServiceFrom": ServiceFrom = DateTime.Parse(e.NewValues[key].ToString());
break;
case "ServiceTo": ServiceTo = DateTime.Parse(e.NewValues[key].ToString());
break;
case "MaxDemand": MaxDemand = float.Parse(e.NewValues[key].ToString());
break;
}
UpdateInvoice(InvoiceID, Cost, Consumption, ServiceFrom, ServiceTo, MaxDemand);
GridView3.EditIndex = -1;
PopulateAccountHistory();
}
你的問題很可能是那些e.NewValues的一個[關鍵]被返回null和的ToString()對空值調用時調用失敗,但我正在猜測;如果你可以發佈異常的堆棧跟蹤,它可能會清除 –