我有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语句放在那里过滤掉它们中是否没有值,即使我得到格式异常,所以我一定做错了。
答案 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.