C# 将文本框Txt转换为int?

C# 将文本框Txt转换为int?,c#,asp.net,C#,Asp.net,我试图将文本框中的文本转换为int,然后在从Web服务调用方法时将其用作参数。我得到了这个错误: mscorlib.dll中发生“System.FormatException”类型的异常 但未在用户代码中处理 有什么帮助吗 这是我的密码 int amount= int.Parse(txtAmount.Text); Service1Client connectionToService = new Service1Client();

我试图将文本框中的文本转换为int,然后在从Web服务调用方法时将其用作参数。我得到了这个错误:

mscorlib.dll中发生“System.FormatException”类型的异常 但未在用户代码中处理

有什么帮助吗

这是我的密码

            int amount= int.Parse(txtAmount.Text);

            Service1Client connectionToService = new Service1Client();

            lblResult.Text = connectionToService.getCurrencyName(amount, "Rupee", "Euro");
你能试试吗

Convert.ToInt32("textbox.text")

最好把这个放在试一试中

try() 
{
    int amount= int.Parse(txtAmount.Text);
    Service1Client connectionToService = new Service1Client();
    lblResult.Text = connectionToService.getCurrencyName(amount,   
       "Rupee","Euro");
} catch(FormatException e) 
{
    //Treatment
}

这里要做的各种事情:

或者确保您的文本框只接受数字(例如,以0开头并查找除0-9以外的任何输入)

如果要解析除上述值以外的其他值,请始终使用解析,因为像1/2、3/4等单个字符确实可以解析,但只能解析为双值

使用TryParse而不是Parse

如果返回true,则输入正常,否则检查输入。然后,双精度值将出现在parsedValue变量中。这比必须处理实际的异常要好


如果预期输入错误,可以使用try/catch with.Parse,但对于TryParse,则不需要使用try/catch,这是更具可读性的解决方案

导致异常的文本在哪里?如果您尝试解析
abcd
,您将得到此异常。如果使用日志记录,您会看到实际的错误消息是
FormatException:输入字符串的格式不正确。
我输入的文本实际上是数字,所以我猜这是导致冲突的原因?请发布字符串。如果出现此错误,则说明当前区域设置的数字格式不正确。如果要使用特定区域设置解析文本,请通过传递
CultureInfo
ObjectPost字符串的可能重复项来指定,否则必须关闭此问题。不可能猜出什么是错的,除非你输入的是十进制而不是实际的整数。不要强迫人们猜测你尝试了什么。字符串
“textbox.text”
将抛出。语句
Convert.ToInt32(textbox.text)
将引发相同的异常,因为它还尝试解析文本。这种方法行不通。字符串
“textbox.text”
不是数字。导致异常的输入字符串是什么?即使OP修复了类型PO,这也不是答案。实际使用
Convert.Int32
。唯一可行的办法是OP改变了input@GerMc这不可能是正确的答案。这对你来说是不可能的…这是最糟糕的情况。隐藏问题并保留
amount
以包含一个随机数,可能是一个零,没有任何警告。如果没有隐藏,则需要完成此代码以在异常情况下进行处理。如何不隐藏异常?在例外情况下它什么也不做handler@DonnayAdrien在catch部分写下正确的注释。更好的解决方案是int.TryParse()。我对空捕获没有问题,OP应该能够自己编写一些代码,答案不必是完整的、随时可以复制粘贴的解决方案。
double parsedValue;
bool wasParsedCorrectly = Double.TryParse(txtTest.Text, out parsedValue);