我有一个用户可以输入数字的文本框,有没有办法将其转换为int?因为我想将它插入只接受int。
的数据库字段tryParse方法似乎不起作用,仍会抛出异常。
答案 0 :(得分:10)
使用Int32.Parse或Int32.TryParse或您可以使用System.Convert.ToInt32
int intValue = 0;
if(!Int32.TryParse(yourTextBox.Text, out intValue))
{
// handle the situation when the value in the text box couldn't be converted to int
}
Parse和TryParse之间的区别非常明显。后者优雅地失败,而另一个将抛出异常,如果它不能将字符串解析为整数。但Int32.Parse和System.Convert.ToInt32之间的差异更为微妙,通常与特定于文化的解析问题有关。基本上如何解释负数和分数和千位分隔符。
答案 1 :(得分:2)
int temp;
if (int.TryParse(TextBox1.Text, out temp))
// Good to go
else
// display an error
答案 2 :(得分:1)
您可以使用Int32.Parse(myTextBox.text)
答案 3 :(得分:1)
如果这是WinForms,则可以使用NumericUpDown控件。如果这是webforms,我会在输入框中使用Int32.TryParse方法和客户端数字过滤器。
答案 4 :(得分:1)
int orderID = 0;
orderID = Int32.Parse(txtOrderID.Text);
答案 5 :(得分:0)
private void txtAnswer_KeyPress(object sender, KeyPressEventArgs e)
{
if (bNumeric && e.KeyChar > 31 && (e.KeyChar < '0' || e.KeyChar > '9'))
{
e.Handled = true;
}
}
来源:http://www.monkeycancode.com/c-force-textbox-to-only-enter-number