C# 如何在if条件C中比较int.MaxValue
我想在ASP.NET中绑定TextBox,它可以容纳的最大值是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
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 ...
}