如何将String转换为Int?

我有一个TextBoxD1.Text ,我想将其转换为一个int以将其存储在数据库中。 数据库

我怎样才能作到这一点? 安全


#1楼

Convert.ToInt32( TextBoxD1.Text );

若是您确信文本框的内容是有效的int,请使用此选项。 一个更安全的选择是 测试

int val = 0;
Int32.TryParse( TextBoxD1.Text, out val );

这将为您提供一些您能够使用的默认值。 Int32.TryParse还返回一个布尔值,指示它是否可以解析,所以您甚至能够将其用做if语句的条件。 spa

if( Int32.TryParse( TextBoxD1.Text, out val ){
  DoSomething(..);
} else {
  HandleBadInput(..);
}

#2楼

尝试这个: code

int x = Int32.Parse(TextBoxD1.Text);

或更好: orm

int x = 0;

Int32.TryParse(TextBoxD1.Text, out x);

一样,因为Int32.TryParse返回bool您能够使用其返回值来决定解析尝试的结果: 字符串

int x = 0;

if (Int32.TryParse(TextBoxD1.Text, out x))
{
    // you know that the parsing attempt
    // was successful
}

若是您很好奇,最好将ParseTryParse之间的区别总结以下: get

TryParse方法相似于Parse方法,可是若是转换失败,TryParse方法不会引起异常。 若是s无效且没法成功解析,则无需使用异常处理来测试FormatException。 -MSDN string


#3楼

int.TryParse()

若是文本不是数字,则不会抛出。 io


#4楼

您须要解析该字符串,还须要确保该字符串确实是整数格式。

最简单的方法是这样的:

int parsedInt = 0;
if (int.TryParse(TextBoxD1.Text, out parsedInt))
{
   // Code for if the string was valid
}
else
{
   // Code for if the string was invalid
}

#5楼

int myInt = int.Parse(TextBoxD1.Text)

另外一种方法是:

bool isConvertible = false;
int myInt = 0;

isConvertible = int.TryParse(TextBoxD1.Text, out myInt);

二者之间的区别在于,若是没法转换文本框中的值,则第一个将引起异常,而第二个将仅返回false。