-1

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

4

2 回答 2

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");
于 2013-04-29T15:34:09.350 回答
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.
于 2013-04-29T15:36:12.343 回答