C# 将文本框值转换为int

C# 将文本框值转换为int,c#,wpf,database,exception,formatexception,C#,Wpf,Database,Exception,Formatexception,我有一个数据库,我将该数据库中的产品价格分配到一个文本框中。每当我尝试将文本框值转换为int时,就会收到一个格式异常。我使用以下代码进行转换: unitsA = Int32.Parse(units.Text); 数据库值是一个smallint。如果units.Text的值不能转换为int,则会出现异常 您可以使用TryParse而不是Parse来处理异常 int number; if(!int.TryParse(units.Text, out number)) { //error ha

我有一个数据库,我将该数据库中的产品价格分配到一个文本框中。每当我尝试将文本框值转换为int时,就会收到一个格式异常。我使用以下代码进行转换:

unitsA = Int32.Parse(units.Text);

数据库值是一个smallint。

如果units.Text的值不能转换为int,则会出现异常

您可以使用TryParse而不是Parse来处理异常

int number;
if(!int.TryParse(units.Text, out number))
{
    //error handling
}
查看以获取有关TryParse的更多信息。

永远不要相信用户输入。 使用Int.TryParse而不是Int.Parse。 这样,如果无法将输入解析为int值,则不必处理异常

替换unitsA=Int32.Parseunits.Text;与:


什么是单位。调用失败时的文本?@PatrickHofman units是我的文本框的名称。请提供一个@PatrickHofman不是询问什么是单位,而是itCheck Instedi的内容是什么。我这样做了,但当我尝试在if条件中格式化它时,仍然会得到一个异常。在我的示例中,if条件在您无法解析它时匹配。也许你还没有认识到这一点!在我的回答中。当您可以解析它时,您的结果将存储在数字中。这就是为什么我从MSDN中添加了到TryParse方法的链接。看一看。
int unitsA;
if(Int32.TryParse(units.Text, out unitsA)
{
    // Do your stuff.
}
else
{
    // Alert the user.
}