پیغام خطا Value was either too large or too small for an Int32
نویسنده :
پیغام خطا Value was either too large or too small for an Int32
سوال : من شکلی دارم که اعداد را در تغییر متن جعبه متن اضافه و تفریق می کند. اگر عددی مانند 2181003000 - 899763000 را وارد کنم این خطا را می گیرم ، "مقدار برای Int32 خیلی بزرگ یا خیلی کوچک بود." چه جوری میتونم این رو درست کنم؟
protected void TextBoxNPRNA_TextChanged(object sender, EventArgs e)
{
int a = Convert.ToInt32(TextBoxTUNA.Text);
int b = Convert.ToInt32(TextBoxETRNA.Text);
int c = Convert.ToInt32(TextBoxNPRNA.Text);
TextBoxTNA2.Text = Convert.ToString(a + b + c);
TextBoxTR.Focus();
}
جواب : هرگز از Convert برای تغییر نوع ورودی کاربر استفاده نکنید: در عوض از TryParse استفاده کنید. به این ترتیب وقتی کاربر یک اشتباه را انجام می دهد - همانطور که مرتباً مرتکب می شوند - می توانید قبل از بروز مشکل آن را تشخیص دهید و دقیقاً برای رفع آن به آنها بگویید:
int a;
if (!int.TryParse(TextBoxTUNA.Text, out a))
{
// Report problem to user
return;
}