c#类型转换的问题,高手必举手之劳,先谢谢了

来源:百度知道 编辑:UC知道 时间:2024/05/15 23:46:58
int group = Convert.ToInt32(Request.QueryString["group"].Trim());
此句有问题,细节如下:

Request接受到的group为上一页textbox中的string;
语句为:Response.Redirect("groupview.aspx?group='" + this.TextBox1.Text.Trim().ToString() + "'");

运行时,当上一页textbox填入的group值为2时,设置断点发现Request.QueryString["group"]的值为‘2’ (说明已经把string类型值传递过来了);
问题是int group的group值为0,说明转换没有成功,提示说:输入字符串的格式不正确。
先谢谢了,
其实在上一页我有验证过程的,为了简便才没有全部贴出来;
并且我已经说明传递的值为‘2’,那就一定是数字字符串了,应该不存在验证问题了吧?
希望高手,给出详细解决方案,

Response.Redirect("groupview.aspx?group=" + this.TextBox1.Text.Trim().ToString());
不要单引号。

Convert.ToInt32想用它对数据进行强制转型,必须保证该转型数据是数字或者数字字符串,且不超过int32的范围,不然给你来个字符串,肯定报错的。
null也会报错,你得写一个简单的函数来判断一下,活着在产生Request.QueryString["group"].Trim()这个值之前保证group的值为数字或者数字字符串

在 Response.Redirect中直接使用字符串相加会有问题的,建议你在这语句之前,设置url

String url= "groupview.aspx?group=" +this.TextBox1.Text.Trim().ToString() ;
Response.Redirect(Url);

或者直接将两个单引号去掉,再测试一下,也有可能ok。
Response.Redirect("groupview.aspx?group=" + this.TextBox1.Text.Trim().ToString() );