我试图将文本从文本框转换为int,然后在从Web服务调用方法时将其用作参数。我收到此错误:
类型' System.FormatException'的例外情况发生在mscorlib.dll中 但未在用户代码中处理
任何帮助?
继承我的代码
int amount= int.Parse(txtAmount.Text);
Service1Client connectionToService = new Service1Client();
lblResult.Text = connectionToService.getCurrencyName(amount, "Rupee", "Euro");
答案 0 :(得分:3)
这里有各种各样的事情:
要么确保您的文本框只接受数字(例如从0开始并查找0-9以外的任何输入)。
如果要解析除上述之外的其他值,请始终使用 Double 解析,因为单个字符(如 1 / 2,3 / 4 等)确实可以解析但仅作为双重值。
使用 TryParse 代替 Parse 。
double parsedValue;
bool wasParsedCorrectly = Double.TryParse(txtTest.Text, out parsedValue);
如果返回true,则输入正常,否则检查输入。 Double值将在parsedValue变量中。这比处理实际异常更好。
如果你期望错误的输入,你可以使用try / catch和.Parse,但是使用TryParse,这将是不需要的,并且是更易读的解决方案
答案 1 :(得分:1)
将它放在try / catch
中会更好try()
{
int amount= int.Parse(txtAmount.Text);
Service1Client connectionToService = new Service1Client();
lblResult.Text = connectionToService.getCurrencyName(amount,
"Rupee","Euro");
} catch(FormatException e)
{
//Treatment
}
答案 2 :(得分:-6)
Convert.ToInt32("textbox.text")