我有一个TextBoxD1.Text
,我想将其转换为一个int
以将其存储在数据库中。 数据库
我怎样才能作到这一点? 安全
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(..); }
尝试这个: 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 }
若是您很好奇,最好将Parse
和TryParse
之间的区别总结以下: get
TryParse方法相似于Parse方法,可是若是转换失败,TryParse方法不会引起异常。 若是s无效且没法成功解析,则无需使用异常处理来测试FormatException。 -MSDN string
int.TryParse()
若是文本不是数字,则不会抛出。 io
您须要解析该字符串,还须要确保该字符串确实是整数格式。
最简单的方法是这样的:
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 }
int myInt = int.Parse(TextBoxD1.Text)
另外一种方法是:
bool isConvertible = false; int myInt = 0; isConvertible = int.TryParse(TextBoxD1.Text, out myInt);
二者之间的区别在于,若是没法转换文本框中的值,则第一个将引起异常,而第二个将仅返回false。