首页 新闻 搜索 专区 学院

输入字符串的格式不正确。

0
悬赏园豆:20 [已解决问题] 解决于 2012-04-23 19:39

我遇到了一个很郁闷的问题,以前调试的时候都不会蹦出这样的问题,昨天他就有了,我不知道到底是哪里出了问题,请各位大虾帮忙。。。。小弟在此不胜感激。。。

问题补充:

详细信息如下:

 

userID是有值的

bindot的主页 bindot | 初学一级 | 园豆:112
提问于:2012-04-13 19:34
< >
分享
最佳答案
0

你检查一下Request.Cookies["UserID"]里是否有值

收获园豆:20
artwl | 专家六级 |园豆:16526 | 2012-04-13 19:52

有值,以前都可以的,昨天调试的时候就出问题了,数据库也没动

bindot | 园豆:112 (初学一级) | 2012-04-14 13:42

@bindot: 你这里是是guid类型的,你转换为int类型,应该是有问题的

artwl | 园豆:16526 (专家六级) | 2012-04-14 14:20

@artwl: 那我如果要得到这个值应该怎么做?

bindot | 园豆:112 (初学一级) | 2012-04-15 10:46

@bindot: int id=改为 Guid id=或 var id=

artwl | 园豆:16526 (专家六级) | 2012-04-15 11:20

@artwl: 应该是这个问题但是怎么结贴啊

bindot | 园豆:112 (初学一级) | 2012-04-23 19:35
其他回答(7)
0

跟踪一下就知道了Request.Cookies["UserID"]里面应该是 空字符串,或者不是数字

小小刀 | 园豆:1991 (小虾三级) | 2012-04-13 20:00

跟踪了Request.Cookies["UserID"]里面应该是 数字,而且不是空的

支持(0) 反对(0) bindot | 园豆:112 (初学一级) | 2012-04-14 13:44

@bindot: 看了你的截图,本来就不是数字,切长度也太长了!

支持(0) 反对(0) 小小刀 | 园豆:1991 (小虾三级) | 2012-04-14 22:58
0

可能不是整數。int i=0;

最好這樣做:

    int i = 0;
            if (int.TryParse(Request.Cookies["UserID"].Value, out i)) {
            
            }

無限遐想 | 园豆:3740 (老鸟四级) | 2012-04-13 20:13

没有int.TryParse(Request.Cookies["UserID"].Value, out i)这个重载方法tryparse(string,out int)

支持(0) 反对(0) bindot | 园豆:112 (初学一级) | 2012-04-14 14:03

@bindot: 沒有。不可能哦。這個是系統自帶的。

支持(0) 反对(0) 無限遐想 | 园豆:3740 (老鸟四级) | 2012-04-14 15:05

@無限遐想: 還有。你的數值不是整數哦。

支持(0) 反对(0) 無限遐想 | 园豆:3740 (老鸟四级) | 2012-04-14 15:05
0

接收到的Request.Cookies["UserID"]可能不能,转换为int类型.设置断点,查看一下接收到的是什么值.

``炯`` | 园豆:4 (初学一级) | 2012-04-13 23:08

有值,请看截图

支持(0) 反对(0) bindot | 园豆:112 (初学一级) | 2012-04-14 14:05

@bindot: 明显你这个不是整数,怎么进行解析?

支持(0) 反对(0) 无之无 | 园豆:5085 (大侠五级) | 2012-04-14 15:51
0

是在运行时的错误吗?

那就是你的Cookies并没有正确获取到UserID这个对象,因此,Value返回的是一个null或empty值,在使用Int.Parse的时候会报告这个错误。当然,如果是别的字符串也会出现类似的问题(只要不是有效的字符串)。

 

建议你:

1——

先判断Cookie是否有值,然后在调用int.Parse方法。

2——

使用int.TryParse这个方法。(当然,这个方法在写代码上要简单点,只是性能消耗上也比第一个方案要多)

3——

使用try-catch捕获处理,这个方案的效率比第二个更低。

无之无 | 园豆:5085 (大侠五级) | 2012-04-14 10:14
0

 

 

你看看那个Value 值,是字符串哦,是不能转换为int型的,得这样:string id = Request.Cookies["UserID"].value;

.Neter | 园豆:19 (初学一级) | 2012-04-14 19:26
0

将value用Response.Write("");输出来看看值不就知道了嘛

KivenRo | 园豆:1722 (小虾三级) | 2012-04-15 08:20
0

嗯,我也觉得是你的值太长,超出了int类型的范围了

Death_Hacker; | 园豆:59 (初学一级) | 2012-04-15 19:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册