格式异常是未处理的输入字符串格式不正确

时间:2012-05-23 07:22:43

标签: c#

Exception

我在该行中遇到异常。我的编码是正确的,但我仍然收到错误。任何人都可以帮我重写该特定行的代码。我正在使用该行查看从数据库到文本框的值。 getprogress是webservice的方法名称。

6 个答案:

答案 0 :(得分:1)

使用int.TryParse()

int result;
if(int.TryParse( menuitemno.Text, out result))
   progress = web.getprogress(result);
else
   //You have incorrect integer in menuitemno.Text

答案 1 :(得分:1)

menuitemno.Text的值类似于32.64(具有十进制),因此无法使用convert.toint将十进制转换为整数。

使用Convert.ToInt64(Convert.ToDouble(menuitemno.Text))进行转化。

要做这个折扣舍入,你可以这样做:

Convert.ToInt64(Math.Floor(Convert.ToDouble(menuitemno.Text)));

如果您需要进行回合,可以将Math.Floor替换为Math.Round

Convert.ToInt64(Math.Round(Convert.ToDouble(menuitemno.Text)));

如果menuitemno.Text的值为空或具有无效的char,则可能会出现错误。

如果您现在允许在menuitemno.Text中使用小数位,请使用Int64.TryParse

答案 2 :(得分:0)

似乎menuitemno不是可以转换为整数的有效字符串。只需检查menuitemno.Text的值,我怀疑它没有整数值。右键单击“menuitemno.Text”并选择快速观察;它会显示价值。

答案 3 :(得分:0)

文本框的值最可能 i nullempty,以修复此问题,假设这些值在可接受范围内,您能做到:

int i =0; 
int.TryParse(menuitemno.Text, out i);
progress = i;

像这样。

答案 4 :(得分:0)

menuitemno是一个文本框吗?如果它只接受数字,你应该使用numericupdown。这样你就不必转换为数字了,你可以很容易地应用限制,例如不允许小数位。

答案 5 :(得分:0)

使用RadTextBox时无需解析任何整数值

Hashtable newval = new Hashtable();
int Age = Convert.ToInt32(newval["Age"].ToString());