从文本框格式化异常

时间:2013-04-29 15:23:32

标签: c# exception format

我有2个文本框,我尝试从中收集数据。 我正在循环它们,但是当程序即将从它们收集数据并且它们没有任何值时,它们是空的,我得到一个格式异常说:“输入字符串的格式不正确。”

if (this.Controls["txt_db0" + count].Text != null)
 {
   //if the value in the textbox is not null
   int db = int.Parse((this.Controls["txt_db0" + count].Text));
   //set my "db" integer to the value of the textbox.
 }

我把if语句放在那里过滤掉它们中是否没有值,即使我得到格式异常,所以我一定做错了。

2 个答案:

答案 0 :(得分:1)

检查你的工作你可以做到这一点

int testInt;
if (int.TryParse(this.Controls["txt_db0" + count].Text,out testInt))
{
  //if the value in the textbox is not null
  int db = testInt;
  //set my "db" integer to the value of the textbox.
}
else
  MessageBox.Show(this.Controls["txt_db0" + count].Text + "  Not an Int");

答案 1 :(得分:0)

int.Parse将在以下情况下抛出异常:

  • 输入字符串包含无法识别为数字的字母或其他特殊字符。
  • 输入字符串为空字符串。

如果您确定输入字符串只包含数字,请在转换前检查字符串是否为空:

string input = this.Controls["txt_db0" + count].Text;
int db = input == "" ? 0 : int.Parse(input);

或者您可以使用:

int db;
if (!int.TryParse(this.Controls["txt_db0" + count].Text, out db))
     // Do something else.