问题描述
intid=Convert.ToInt32(e.CommandArgument);strings=GridView1.Rows[id].Cells[2].Text;stringurl;url="WebForm1.aspx?name="+s;Response.Redirect(url);CommandArgument绑定的是string型的,运行就显示第一行错误。
解决方案
解决方案二:
Convert.ToInt32转换失败了,先把e.CommandArgument显示出来看看是什么内容,是否能转换为整数
解决方案三:
e.CommandArgument不是为数字类型~
解决方案四:
调试看看e.CommandArgument的值,这种处理首先要做是否为Null的判断if(string.IsNullEmpty(e.CommandArgument)==false){intid;if(int.TryParse(e.CommandArgument,outid)==false){thrownewException("不能转换数字");}strings=GridView1.Rows[id].Cells[2].Text;stringurl;url="WebForm1.aspx?name="+s;Response.Redirect(url);}else{}
这种类型转换最好使用TryParse去做。
解决方案五:
Convert.ToInt32()方法,它只接受是数字的字符串,如"1","2"...如果你转换"A","中"...肯定为出现这样的错误。因此要看你的e.CommandArgument得到什么值。
解决方案六:
是object类型。怎么才能转换为int型
解决方案七:
e.CommandArgument获取的值是'张三',我的列名没有ID。不能改表,怎么才能获取行ID呢?