我有一个asp.net网站,它可以完美地在iis上工作。我只是在我从Visual Studio调试时添加了其他情况以处理null异常及其正常工作,但是当我将其部署到本地iis时会抛出异常
我的代码是
if (txtflat.Text != "")
{ comm.Flat_Commission = Convert.ToDouble(txtflat.Text); }
else { comm.Flat_Commission = Convert.ToDouble(0.0); }
我看到的错误是
[FormatException: Input string was not in a correct format.]System.Number.ParseDouble(String value, NumberStyles options,NumberFormatInfo numfmt) +14777139SalesCommissionUtility.User.viewCommission.btnAddCommission_Click(Object sender, EventArgs e) +1811System.Web.UI.WebControls.Button.OnClick(EventArgs e) +11764877System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +150System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1665
答案 0 :(得分:0)
检查。文本可以为null或“”。 String.IsNullOrWhiteSpace("text")
方法将同时检查null或“”。
if (!String.IsNullOrWhiteSpace(txtflat.Text))
{
comm.Flat_Commission = Convert.ToDouble(txtflat.Text);
}
else
{
comm.Flat_Commission = Convert.ToDouble(0.0);
}
答案 1 :(得分:0)
您应该采取更安全的方法: 使用
Double.TryParse
为避免任何可能的错误/例外:
double val;
if (Double.TryParse(txtflat.Text, out val)){
comm.Flat_Commission = val;
}
else{
//input text is not well formatted. Handle this situation programmatically
}
通常来说,处理双精度数需要一点点注意,因为在不同的文化中,小数部分使用不同的分隔符(例如,用引号代替点)。
无论如何,在收到的异常消息中,错误非常明显:输入字符串(txtflat.Text)不能被解析为两倍,因为其格式不正确。
答案 2 :(得分:0)
我的问题是因为Visuai Studio没有更新我的文件,所以IIS没有进行检查。问题出在我的Windows用户帐户上。我从管理帐户登录后进行了所有更改,然后进行了更新并开始工作。我希望这将帮助任何面临相同问题的人。