我有一个TextBoxD1.Text,我想将其转换为int,并将其存储在数据库中。
我该怎么做?
我有一个TextBoxD1.Text,我想将其转换为int,并将其存储在数据库中。
我该怎么做?
当前回答
对字符使用Convert.ToInt32()时要小心!它将返回字符的UTF-16代码!
如果使用[i]索引运算符仅在某个位置访问字符串,它将返回一个字符而不是字符串!
String input = "123678";
^
|
int indexOfSeven = 4;
int x = Convert.ToInt32(input[indexOfSeven]); // Returns 55
int x = Convert.ToInt32(input[indexOfSeven].toString()); // Returns 7
其他回答
虽然这里已经有很多描述int.Parse的解决方案,但所有答案中都缺少一些重要的内容。通常,数值的字符串表示因区域性而异。数字字符串的元素,如货币符号、组(或千)分隔符和小数分隔符,都因文化而异。
如果您想创建一种将字符串解析为整数的健壮方法,那么考虑区域性信息非常重要。如果没有,将使用当前的区域性设置。这可能会给用户一个非常可怕的惊喜——甚至更糟糕的是,如果你正在解析文件格式。如果您只想进行英语解析,最好通过指定要使用的区域性设置,使其明确:
var culture = CultureInfo.GetCulture("en-US");
int result = 0;
if (int.TryParse(myString, NumberStyles.Integer, culture, out result))
{
// use result...
}
有关更多信息,请阅读CultureInfo,特别是MSDN上的NumberFormatInfo。
您可以使用以下命令在C#中将字符串转换为int:
转换类的函数,即convert.ToInt16()、convert.ToInt32()、转换.ToInt64()或使用Parse和TryParse函数。这里给出了示例。
您需要解析字符串,还需要确保它确实是整数格式。
最简单的方法是:
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
}
这样就可以了
string x = TextBoxD1.Text;
int xi = Convert.ToInt32(x);
或者你可以使用
int xi = Int32.Parse(x);
有关详细信息,请参阅Microsoft开发人员网络
int.TryParse()
如果文本不是数字,它不会抛出。