我在下面有以下代码。效果很好,希望我想让 MaxDemand 为空值。但是由于我正在解析一个字符串,如果我不输入一些值,它似乎会出错。
异常详细信息: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();
}