Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在if条件C中比较int.MaxValue_C#_Asp.net - Fatal编程技术网

C# 如何在if条件C中比较int.MaxValue

C# 如何在if条件C中比较int.MaxValue,c#,asp.net,C#,Asp.net,我想在ASP.NET中绑定TextBox,它可以容纳的最大值是int.MaxValue。下面的代码抛出一个错误 using (SqlConnection scon = new SqlConnection(cs)) { SqlCommand cmd = new SqlCommand("spDelete", scon); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@i

我想在ASP.NET中绑定TextBox,它可以容纳的最大值是int.MaxValue。下面的代码抛出一个错误

using (SqlConnection scon = new SqlConnection(cs))
{
    SqlCommand cmd = new SqlCommand("spDelete", scon);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("@id", TextBox6.Text);
    scon.Open();
    if (TextBox6.Text != null && TextBox6.Text <= int.MaxValue)
    {
        int del = cmd.ExecuteNonQuery();
        if (del == 0)
        {
            Label2.Visible = true;
            Label2.ForeColor = System.Drawing.Color.Red;
            Label2.Text = TextBox6.Text + " Record not found";
        }
        else
        {
            Label2.Visible = true;
            Label2.ForeColor = System.Drawing.Color.Red;
            Label2.Text = TextBox6.Text + " Deleted Successfully";
            LoadGV();
        }
    }
    else
    {
        Label2.Visible = true;
        Label2.ForeColor = System.Drawing.Color.Red;
        Label2.Text = TextBox6.Text + " Enter a valid value";
    }
}
控件。文本为字符串类型。您应该转换为int类型进行比较

行下回复

if (TextBox6.Text != null && TextBox6.Text <= int.MaxValue)

请注意,try可能会引发异常,因为字符串输入无效。如果需要,您可以捕获特定的异常。您可以参考MSDN了解可能的异常情况:

Textbox.Text是字符串,而不是int。我想您应该先尝试将其转换为int,然后再执行以下操作:

int val;
if (Int32.TryParse(TextBox6.Text, out val) && val <= int.MaxValue) {
 // your stuff ...
}

请注意,您不需要在if块之外设置连接

看起来您正在尝试将字符串与整数进行比较。将您的文本框值转换为int,然后进行比较。这确实有助于了解错误是什么。但首先,不能将字符串TextBox6.Text与整数进行比较。Convert.ToInt32TextBox6.Text@TRUSION如果比较值对于Int32太大或太小,则在输入建议时会遇到错误。@MarkFitzpatrick我希望当值超过整数时,它会转到else块。它不能是长度。我想它应该是文本框中的值。int最大值为2147483647。因此,根据您的条件,我可以输入2147483650以及inputValue@QadeerMangrio,因为int maxvalue是2147483647。答案已张贴。您可以使用其中任何一个.Edited来删除inputValue。当存在int.tryparse时,为什么要在try catch中包装int.parse?做同样的事情,但更干净。准确地说,val@tafia是否需要在此处使用out参数?@Qadeer,这是TryParse方法所必需的。。。另一种选择在@Mango Wong post中有描述,而且要详细得多。val@Matthew,你是对的,我已经把它作为例子,以防他想设置任何阈值
int val;
if (Int32.TryParse(TextBox6.Text, out val) && val <= int.MaxValue) {
 // your stuff ...
}