if((Convert.ToInt32(quantityTxt.Text)!=Convert.ToInt32(MyList.DataKeys)|| (remove.Checked=true)))
指定的转换无效是不是转换格式有误啊?
怎么改啊

解决方案 »

  1.   

    在转换之前需要判断是否为数字,不然就会出现这个异常。可以用这个函数判断:
    public static bool  IsNumeric(string number)
    {
    if (number == null)
    {
    return false;
    } for (int i = 0; i < number.Length; i++)
    {
    if ( !char.IsNumber(number[i]) )
    {
    return false;
    }
    } return true;
    }
      

  2.   

    if(Convert.ToInt32("123")!=Convert.ToInt32("234"))  是可以执行的,是不是你的哪个quantityTxt.Text里面有非数字字符啊.
      

  3.   

    楼上,我认为不用那么麻烦,你就直接Convert.ToInt32(str)放到try--catch中就行,报错就不是整形,反之
      

  4.   

    如果觉得遍历方法麻烦,可以用正则表达式判断:
    Regex r = new Regex(@"^\d+$");if ( r.IsMatch(number) )
    {
        return true;
    }
    else
    {
        return false;
    }(正则表达式可以根据你的实际需求进行编写)异常捕获方式当然也能实现,但感觉性能和灵活性不是很好
      

  5.   

    类型转换的时候,一定要加try-catch