【发布时间】:2014-04-22 15:25:50
【问题描述】:
我正在 WF 上处理小额销售发票申请。我有一个客户表和一个产品表。然后,我通过销售表单上的组合框填充客户名称和产品名称。一旦用户从 ProductName 组合框中选择了一个项目,其他文本框(如 Price 和 ProductID)就会自动填充数据库中 Product Table 中的数据。我还有一个名为 txtQuantity 的文本框,可以输入产品订单的数量。一旦为数量、小计、GST(新加坡的税)和总计输入数字,就会自动计算这些值,并且这些值会显示在小计、GST 和总计的文本框中。当用户删除要更新/更改的数量时,它显示错误为“未处理格式异常,输入字符串的格式不正确”。当用户删除数量或想要更改为新值时,我希望防止此错误停止运行我的应用程序。我该怎么做,因为我在这里完全迷失了。下面是我的代码。
private void txtQuantity_TextChanged(object sender, EventArgs e)
{
int iQuantity = Convert.ToInt32(txtQuantity.Text);
decimal dPrice = Convert.ToDecimal(txtPrice.Text);
decimal dSubtotal = dPrice * iQuantity;
decimal dGST = dSubtotal * 7/100;
decimal dTotal = dSubtotal + dGST;
txtSubTotal.Text = Convert.ToString(dSubtotal);
txtGST.Text = Convert.ToString(dGST);
txtTotal.Text = Convert.ToString(dTotal);
}
我还想将数量文本框的参数设置为仅用于输入数字。我稍后会这样做。这将是另一件需要探索的事情。对此的任何建议也受到欢迎和赞赏。
【问题讨论】:
-
您需要学习如何调试,这样您才能找到引发异常的行并自己了解问题所在。我的猜测是
txtQuantity或txtPrice是空白的,而您的Convert函数失败。你可以在做任何事情之前简单地检查这些(使用string.IsNullOrEmpty())。 -
您应该使用
int.TryParse和decimal.TryParse来查看数据是否与数据类型兼容。
标签: c# winforms textbox keypress textchanged