int index = Convert.ToInt32(e.CommandArgument.ToString());不管用

时间:2013-12-03 07:32:18

标签: c# asp.net

请帮帮我。

int index = Convert.ToInt32(e.CommandArgument.ToString());

这对我不起作用。它显示异常为“输入字符串格式不正确”。

e.CommandArgument不为空,我正在为此获得价值。

3 个答案:

答案 0 :(得分:2)

您应该更改以下代码

int index;
bool bIsConverted = int.TryParse(e.CommandArgument.ToString(), out index);

答案 1 :(得分:0)

documentation声明了以下Convert.ToInt32

  

将指定的数字字符串表示形式转换为   等效的32位有符号整数。

因此,虽然e.CommandArgument不是null,但这并不意味着它可以转换为数字。您需要检查e.CommandArgument是否包含1,20,42等值。

如果e.CommandArgument可以是数字或其他内容,您可以使用int.TryParse。这将返回一个布尔值,表示转换成功。解析失败时不会抛出异常。

答案 2 :(得分:0)

检查空格

   int index = Convert.ToInt32(e.CommandArgument.ToString().Trim());

如果e.CommandArgument值无效,请检查empty