0

在 aspx 页面中,我有一个文本框

 <asp:TextBox ID="txtrandom" runat="server"></asp:TextBox>

在 .cs 页面中,我正在从该文本框中检索 te 值并将其转换为int以便可以在for循环中使用。

在 .cs 页面中

    int random;
    random = Convert.ToInt16(txtrandom.Text);
    for (int i = 0; i < random; i++)
    {
    //other code 
    }

但是当我执行时它会给出错误。Input string was not in correct format如何将它转换成int

4

5 回答 5

2

请尝试下面的代码

        int random=0;            
        bool isValidInt = int.TryParse(txtrandom.Text, out random);
        if (isValidInt)
        {
            for (int i = 0; i < random; i++)
            {
                //other code 
            }
        }
        else
        {
            Response.Write("Please enter valid int value in textbox.");
            txtrandom.Focus();
        }

谢谢

于 2013-10-24T04:18:37.740 回答
1

您应该使用文本框作为数字类型,对于 Int 转换,您可以使用

 int someInt;
 int.TryParse(s, out someInt);

所以返回值指示转换 Int32 是否成功。

于 2013-10-24T04:16:25.183 回答
1

首先,您需要了解“将值转换为整数必须需要转换后的值是 int 类型”。在文本框中输入的值是一种字符串类型,因此它可以是任何类型。

所以首先你需要检查一个有效的 INT 值。为此,您需要这样做

int random = 0;            
bool isValidInt = int.TryParse(txtrandom.Text, out random);

如果转换成功,那么您可以使用现在的有效整数值random

代码看起来像(参考:Hitesh's answer)

if (isValidInt)
{
   for (int i = 0; i < random; i++)
    {
      //other code 
    }
}
else
{
   Response.Write("Please enter valid int value in textbox.");
   txtrandom.Focus();
}
于 2013-10-24T04:24:45.593 回答
0

这些是推荐的方法..

int anInteger;
anInteger = Convert.ToInt32(textBox1.Text);
anInteger = int.Parse(textBox1.Text);
于 2013-10-24T04:28:44.260 回答
0

首先,您需要确保在该文本框中只输入数字。这样您在将其转换为整数值时不会遇到任何异常。

使用 aregular expression validator确保only Integers are entered into that Textbox带有验证表达式^[0-9]+$

此外,您需要在使用的数据类型上保持一致。利用Int32

然后

if(!Textbox1.Text.Equals(""))    // you can take care of "" by using required field validator
{ 
Int32 random = Convert.ToInt32(Textbox1.Text);
}

现在相应地使用这个值。

于 2013-10-24T04:38:25.907 回答